我的应用程序使用Angular前端与C#
后端配对。
为了确定当前坐在电脑前的人,我使用C#/ASP.NET
的{{1}}。
现在,不存在编码问题,我的问题是Windows不断发出错误的Current.User.Identity
。从昨天开始就发生了。我的网站不断告诉我我是Identity
,而不是我现在正在使用的用户帐户。
我想这可能与我使用IISAdmin
的凭据添加几个网络共享(快速访问服务器)并勾选“保存凭据”复选框有关。
通常,当我部署补丁程序时,我只是通过资源管理器手动连接到服务器,然后手动输入凭据。我已经做过多次了,这从来都不是问题。
这是有点奇怪的地方。我尝试以用户身份显式启动IISAdmin
,它只是将窗口合并到我已经拥有的现有Chrome
窗口中。打开我的网络应用Chrome
。
我完全关闭了IISAdmin
,再次以我的用户Chrome
的身份明确启动了它。
以我可以访问的虚拟帐户启动IISAdmin
,Chrome
会正确打开一个新的Chrome
窗口,并且Chrome
确认我已按照Dummy的身份登录。
User.Identity
的行为完全相同,因此这与浏览器无关。
即使在完全重启后,这仍然是一个问题。重新启动后,网络共享已被删除,我认为它们是临时的。
Windows应该分发我的标准问题用户帐户auth,而不是刚刚保存在某处的功能强大的超级管理员。
答案 0 :(得分:0)
与一些同事交谈后,他们指出了解决方案。
如果您遇到这种情况:
转到系统控制/凭据管理器/ Windows凭据 (黄金保险箱)
删除有冲突的凭据
起初我没有意识到这一点,但是当您创建网络共享并保存凭据时,它将凭据保存在此处。 我没想到的是Windows将服务器的文件路径映射到服务器的实际IP / DNS地址。
因此,每当您连接到所述服务器时,Windows就会使用它拥有的已保存凭据,并且由于Kerberos的工作方式,您现有的令牌也将得到处理。
即使您以普通用户身份明确启动Chrome,也会使事情变得有些混乱。