asp.net – IIS将旧用户名返回到我的应用程序
这里是我的情况。我创建了一个应用程序,使用集成Windows身份验证为了工作。在Application_AuthenticateRequest()中,我使用HttpContext.Current.User.Identity获取我的网站的用户的当前WindowsPrincipal。
现在这里有趣的部分。我们的一些用户最近结婚了,他们的名字改变了。 (即用户的NT登录从jsmith更改为jjones),当我的应用程序对它们进行身份验证时,IIS会传递他们的OLD LOGIN。我继续看到jsmith传递到我的应用程序,直到我重新启动我的SERVER!注销客户端不工作。重新启动应用程序池不起作用。只有完全重启。 有谁知道这里发生了什么?是否有某种命令,我可以使用刷新任何缓存给我这个问题?我的服务器配置不正确吗? 注意:我绝对不想重新启动IIS,我的应用程序池或机器。由于这是一个生产箱,这些不是真正可行的选择。 AviD – 是的,他们的UPN和他们的登录名一起改变。和Mark / Nick …这是一个生产企业服务器…它不能只是重新启动或IIS重新启动。 跟进(为后代): Grhm的答案是spot-on。在您没有很多人使用您的应用程序但在缓存中保留用户身份的足够请求的低容量服务器中,此问题会弹出。 KB的关键部分,似乎描述为什么缓存项目不刷新默认10分钟后是:
我不确定在我们的代码是什么导致这(循环查询),但对我们工作的决议是将LsaLookupCacheExpireTime值从看似淫秽默认值1周,只是几个小时。这对我们来说,将用户在真实世界中受到影响的概率降低到基本上为零,但同时不会导致针对我们的目录服务器的大量SID名称查找。如果应用程序通过SID查找用户信息而不是将用户数据映射到文本登录名,则更好的解决方案是IMO。 (注意,供应商!如果您在应用程序中依赖于AD身份验证,则需要将SID放入您的身份验证数据库!) 解决方法
我最近有类似的问题,如罗伯特·麦克莱恩的
answer中所述,AviD的组策略更改不工作,如果你不是作为用户登录。
我发现更改LSA查找缓存大小,如描述是MS KB946358工作,而不重新启动或回收任何apppool或服务。 我发现这是一个类似问题的答案:Wrong authentication after changing user’s logon name。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 知道当前的URL是否包含在RouteTable.Routes中
- 如何使用asp.net中的Enter键提交表单
- 垃圾收集 – ASP.NET核心Web应用程序(.NET Framework)中app
- asp.net-mvc – 如何确定视图是否为ASP.NET MVC中的GET或PO
- asp.net – MVC3 Controller文件夹不会出现在URL中
- ASP.NET C#目标空白无法在LinkBut??ton上运行
- 在razorview中显示checkboxfor的文本
- VS 2015预览缺少“ASP.NET 5 Web应用程序”项目类型?
- asp.net-mvc – MVC3中的CheckboxList查看并获取传递给控制
- asp.net-mvc – 运行Update-Database时出错
- asp.net – 如何在OnActionExecuting中获取当前路
- asp.net – 从Web应用程序中查找网站名称
- asp.net HiddenField:动态添加自定义属性
- asp.net – 如何在主页面中包含CSS?
- msdeploy – 使用ASP.NET 4.5发布配置文件时如何
- asp.net-mvc – 调用SaveChanges()时从更新中排除
- asp.net-mvc – ASP.NET MVC路由和静态数据(即图
- asp.net – 添加新行到datatable的顶部
- 使用asp.net用户控件时我在哪里放JavaScript?
- 集成ASP.NET Webforms,WebAPI和AngularJS