在保护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>
我是否在配置中错过了一个设置来阻止此登录对话框,还是有更好的方法?任何帮助将不胜感激
答案 0 :(得分:0)
HttpContext.Current
启用之前,不会考虑 AspNetCompatibilityMode
。您是否已启用AspNetCompatibilityMode
服务?