Как настроить DevForce для использования аутентификации Windows в приложении SL

Для правильной работы аутентификации Windows в приложении DevForce Silverlight требуется ряд различных элементов.

Что именно они собой представляют? (Я собираюсь ответить на свой вопрос здесь, теперь, когда он у меня работает.)


person Greg Gum    schedule 12.06.2014    source источник


Ответы (1)


В web.config необходимо все следующее:

<system.web>
  <authentication mode="Windows" />
  <httpRuntime  targetFramework="4.5" />
  <authorization>
   <deny users="?"/>
  </authorization>
</system.web>
    <system.serviceModel>
   <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>

Далее этот класс требуется на сервере:

public class ServiceEvents : IdeaBlade.EntityModel.Server.ServiceHostEvents
{
   public override void OnEndpointCreated(System.ServiceModel.Description.ServiceEndpoint endpoint)
   {
    base.OnEndpointCreated(endpoint);

    if (endpoint.Binding is CustomBinding)
    {
        var binding = endpoint.Binding as CustomBinding;
        var elements = binding.CreateBindingElements();

        var tbe = elements.Find<TransportBindingElement>();
        var httpbe = tbe as HttpTransportBindingElement;
        httpbe.AuthenticationScheme = System.Net.AuthenticationSchemes.Negotiate;
        endpoint.Binding = new CustomBinding(elements);
    }
}

}

И, наконец, в Visual Studio:

  1. Выберите веб-проект.
  2. Откройте окно свойств.
  3. Установите для анонимной аутентификации значение «Отключено».
  4. Установите для проверки подлинности Windows значение «Включено»

Теперь в пользовательском IEntityLoginManager вы можете использовать следующее, чтобы получить имя пользователя домена:

var userName = HttpContext.Current.User.Identity.Name;

Затем вы можете использовать userName для поиска ролей/разрешений для пользователя.

И, наконец, функция проверки подлинности Windows должна быть включена в IIS. Это включается/выключается из Панели управления/Программы и компоненты/Включение или отключение компонентов Windows/Всемирные веб-службы/Безопасность/Аутентификация Windows.

Если какой-либо из вышеперечисленных шагов отсутствует, userName будет нулевым.

person Greg Gum    schedule 12.06.2014