我有一个WCF服务,它有一个方法可以返回正在使用该服务的Silverlight客户端的Windows用户名。 WCF服务使用basicHttpBinding,其中TransportCredentialOnly模式设置,TransportClientCredentialType设置为Windows。在IIS中,Windows身份验证已启用,并且禁用了匿名身份验证。
尽管(显然)在我调用服务时正确配置服务并要求它返回用户名但是它出错了。仔细检查表明HttpContext.Current.User始终为null(因此抛出了nullreferenceexception)。
有没有人有任何其他想法,为什么这不起作用?
答案 0 :(得分:4)
尝试添加 -
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
到您的配置文件
答案 1 :(得分:1)
在WCF中,有OperationContext对象,您可以使用ServiceSecurityContext属性从中检索调用方/客户端传入的安全凭证。