【问题标题】:How to configure DevForce to use Windows Authentication in a SL App如何配置 DevForce 以在 SL 应用程序中使用 Windows 身份验证
【发布时间】:2014-08-03 01:55:04
【问题描述】:

为了使 Windows 身份验证在 DevForce Silverlight 应用程序中正常工作,需要许多不同的元素。

它们到底是什么? (我将在这里回答我自己的问题,现在我已经开始工作了。)

【问题讨论】:

    标签: devforce


    【解决方案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. 选择 Web 项目。
    2. 打开属性窗口。
    3. 将匿名身份验证设置为“已禁用”
    4. 将 Windows 身份验证设置为“已启用”

    现在在自定义 IEntityLoginManager 中,您可以使用以下内容获取域用户名:

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

    然后您可以使用 userName 来查找用户的角色/权限。

    最后,必须在 IIS 中启用 Windows 身份验证功能。这是从控制面板/程序和功能/打开或关闭 Windows 功能/万维网服务/安全/Windows 身份验证打开/关闭。

    如果缺少上述任何步骤,则 userName 将为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-14
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多