Как я могу получить имя пользователя в приложении OOB? - PullRequest
0 голосов
/ 15 марта 2012

У меня есть текущее приложение silverlight, которое работает в окне браузера asp.net, как часть нашего сайта в интрасети.

Мне действительно нужно, чтобы имя пользователя системы было зарегистрировано.

У меня есть тестовая система, работающая как OOB, которая выполнит необходимые действия для получения имени пользователя из системы.

У меня такой вопрос: может ли приложение OOB silverlight по-прежнему находиться на странице интрасети, как это было, когда оно не было помечено как приложение OOB?

спасибо Тони

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Я могу только догадываться, как вы собираетесь использовать имя пользователя, но если вы планируете использовать его для аутентификации или авторизации, вам следует провести немного больше исследований.

Если вы хотите на самом деле аутентифицировать пользователя, сервер должен быть тем, кто это сделает. Например: запрос имени пользователя и пароля, проверка подлинности Windows и т. д. Имя пользователя (и даже домен), работающее на ПК, не следует доверять, чтобы быть правильным.

0 голосов
/ 15 марта 2012

В 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, но я еще не проверял это, и не могу сказать вам, можете ли вы пойти по пути, описанному выше.

...