即时使用WCF服务,用户和角色保存在数据库中。在我的服务中我试图识别谁在调用该服务。所以我输入我的WCF服务
string user = ServiceSecurityContext.Current.PrimaryIdentity.Name;
但是我得到的nullexlex对象没有被发送到参考,香港专业教育学院整天尝试谷歌它,但似乎无法找到什么错误。有什么建议吗?
答案 0 :(得分:1)
“有什么不对”是ServiceSecurityContext.Current
正在返回null
而不是ServiceSecurityContext
的实例。
发生这种情况的一种情况是,如果绑定配置为使用将MessageCredentialType
设置为None
的邮件安全性。
但是,我不知道列出ServiceSecurityContext.Current
可以null
的每个场景的任何综合文档:因为在通道堆栈中建立了安全上下文,它取决于特定的绑定正在使用的配置和安全提供程序我想,它也可能受到自定义行为的影响,它可以摆弄消息属性。
话虽如此,除非您将自定义代码插入到通道堆栈中,否则可能会安全地假设这只会在绑定不需要任何客户端身份验证的情况下发生。您应首先检查您正在使用绑定配置,该绑定配置将验证客户端并提供您期望的用户名IIdentity
。