使用NTLM CustomBinding和asp.net中的自定义主体保护WCF

时间:2011-04-27 07:02:37

标签: asp.net wcf security

在保护WCF服务时,我想使用托管该服务的asp.net网站中使用的活动目录自定义主体。浏览网站并使用以下代码

设置自定义主体时,一切正常

static void context_AuthenticateRequest(object sender,EventArgs e)         {             CustomIdentity身份;             CustomPrincipal principal = GetPrincipalFromCookie();

        if (principal == null)
        {
            ... create principal from active directory
            ... Store Principal in a cookie
        }

        HttpContext.Current.User = principal;
        Thread.CurrentPrincipal = principal;
    }

然而,当我对我的服务进行WCF调用时,会出现一个登录对话框,删除行HttpContext.Current.User = principal导致登录对话框没有出现但对我来说没用,因为我需要这个以便WebUserSecurityContext填写我的申请。我正在使用NTLM的customBinding

                                           

      <httpTransport authenticationScheme="Ntlm" 
        maxBufferSize="2147483647"
        maxReceivedMessageSize="2147483647"
        maxBufferPoolSize="2147483647" proxyAuthenticationScheme="Anonymous"/>
    </binding>
  </customBinding>

我是否在配置中错过了一个设置来阻止此登录对话框,还是有更好的方法?任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

HttpContext.Current启用之前,不会考虑

AspNetCompatibilityMode。您是否已启用AspNetCompatibilityMode服务?