Проверка подлинности Windows (NTLM) в приложении Silverlight "Out of browser" - PullRequest
0 голосов
/ 25 марта 2011

У меня есть веб-приложение, которое работает без проблем в моем браузере. Но если я установлю его вне браузера, при попытке получить имя пользователя, userAccount не будет в словаре:

private void Application_Startup(object sender, StartupEventArgs e) {
  string userId = e.InitParams["UserAccount"];//--> KeyNotFoundException
  //...
}

Что нормально, потому что я даю это через запуск silverlight на веб-странице aspx:

<param name="InitParams" value="UserAccount=<%=HttpContext.Current.User.Identity.Name%>" />.

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

Итак, один вопрос:

  • Как управлять, чтобы гарантировать, что пользователь имеет право загружать приложение И получать идентификатор пользователя.

Большое спасибо!

J4N

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

На самом деле кажется, что это невозможно, я должен создать службу WCF, которая возвращает текущего зарегистрированного пользователя.

0 голосов
/ 25 марта 2011

Вы должны иметь возможность установить его на стороне клиента следующим образом:

e.InitParams["UserAccount"] = Environment.UserName;

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

Однаконикогда не рекомендуется устанавливать разрешения на основе имени пользователя, предоставленного клиентом (что и в этом, и в вашем примере).

...