Проверка подлинности Windows в Silverlight Vs 2010 - PullRequest
1 голос
/ 22 октября 2010

Я хочу реализовать аутентификацию Windows в серебряном свете, как это сделать?

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

Существует обходной путь, если вы размещаете приложение Silverlight на странице ASP.NET.

  1. Убедитесь, что на вашем веб-сайте (на котором размещены страницы Silverlight .xap и ASPX) установлена ​​ОС Windows.Безопасность интеграции включена, анонимный доступ отключен.

  2. Добавьте в свой список следующее:

В результате ваше имя пользователя, извлеченное из ASP.NET, будет перенесено в ваше приложение Silverlight.

  1. Добавьте эту строку на страницу App.xaml.cs., в методе Application_Startup:

    // Take parameters and store them in application resources
    if (e.InitParams != null)
    {
        foreach (var data in e.InitParams)
        {
            this.Resources.Add(data.Key, data.Value);
        }
    }
    
  2. Как только вы выполнили вышеуказанные шаги, вы можете получить доступ к своему значению из кода страницы, используя следующее:

    Приложение.Current.Resources ["userId"]. ToString ();

  3. Кроме того, в качестве альтернативы, если вы запускаете приложение в интрасети и запускаете его вне браузераРежим с повышенной безопасностью, все это намного проще.Вы можете получить доступ к Windows API, используя это:

    if (Application.Current.HasElevatedPermissions) {using (dynamic wshNetwork = AutomationFactory.CreateObject ("WScript.Network")) {return (wshNetwork.UserName);}}

0 голосов
/ 22 октября 2010

Насколько я знаю, невозможно использовать проверку подлинности Windows "напрямую" в Silverlight (по крайней мере, с автономной службой WCF - возможно, с IIS есть некоторая поддержка?).

На мой взгляд, приемлемый способ сделать это - передать имя пользователя / пароль на ваш сервер, и там вы запрашиваете Active Directory, используя библиотеку LDAP. Обязательно используйте SSL для вызовов службы, в противном случае учетные данные будут передаваться в открытом виде по проводам.

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