我有Windows身份验证的WCF服务。要识别服务端的客户端用户,我使用以下代码:ServiceSecurityContext.Current.PrimaryIdentity.Name
。
以表格形式返回字符串:'domain \ janedoe'。
Jane Doe结婚并更改了姓氏。 Active Directory管理员还重命名了她的用户ID。所以现在她登录AD作为'domain \ janesmith'。
我的问题是ServiceSecurityContext.Current.PrimaryIdentity.Name
仍然会返回旧的 - “域\ janedoe”。
您对从何处开始有一些建议吗?
答案 0 :(得分:1)
Active Directory中有一些缓存机制。
也许此链接可以帮助您link
答案 1 :(得分:1)
我在IIS 6中运行的Web应用程序遇到了类似的问题。清除缓存对我来说唯一有用的就是重启服务器。我们的AD管理员完全没有帮助/超出他的深度,所以我最终只是重新编写页面来抓住sid。然后,如果我需要用户名,我会在sid上执行LDAP查询以获取用户名。
答案 2 :(得分:1)
Here是对类似问题的回答。
答案 3 :(得分:0)
如何使用Softerra LDAP Browser(免费版本2.6)查看可用的属性并查看可能已读取的字段?
然后你可以进一步调查;也许她名字的改变并没有涵盖所有必要的属性。
<强>增加:强>
此外,如果您有多个域控制器复制其信息,可能会有一些延迟,直到它们都有最新数据。