В Silverlight 4 OOB вы можете использовать AutomationFactory, когда приложение работает с повышенными разрешениями.
var username = "";
if (App.Current.HasElevatedPermissions)
using (dynamic shellObj = AutomationFactory.CreateObject("WScript.Network"))
userName = shellObj.UserName;
Обратите внимание, что вам нужно сослаться на
- Microsoft.CSharp.dllи
- System.Core.dll
Подробнее об этом в Блог Джастина Энджелса
Если вы развертываете Silverlight 4-Приложение должно работать из браузера, так как песочница внутри браузера не допускает ElevatedPermissions.Если вы решили использовать Silverlight 5, вы можете включить ElevatedPermissions с административной учетной записью для приложений в браузере (msdn.microsoft.com/en-us/library/ee721083(v=vs.95).aspx).
Хотя вы, конечно, можете запускать приложение внутри интранет-страницы, оно не имеет повышенных разрешений, если вы (или пользователь) не устанавливаете и не запускаете его OOB.Таким образом, приложение не сможет получить доступ к имени пользователя.Похоже, что это ограничение частично снято с Silverlight 5, но я еще не проверял это, и не могу сказать вам, можете ли вы пойти по пути, описанному выше.