gpt4 book ai didi

asp.net - 为什么启用模拟后 Thread.CurrentPrincipal.Identity 和 WindowsIdentity.GetCurrent() 会有所不同?

转载 作者:行者123 更新时间:2023-12-02 12:07:47 25 4
gpt4 key购买 nike

我启用了模拟和 Windows 身份验证。

<authentication mode="Windows" />
<identity impersonate="true" userName="name" password="passord"/>

但是 Thread.CurrentPrincipal.Identity.Name 返回经过身份验证的用户的名称,WindowsIdentity.GetCurrent() 返回模拟身份。

这些身份不应该是相同的吗?

在这种情况下,代码在哪些凭据下运行?

最佳答案

据我所知,Thread.CurrentPrincipal包含线程启动条件的信息,包括WindowsIdentity。这就是为什么 Thread.CurrentPrincipal.Identity.Name 返回启动线程的用户的名称。相反,WindowsIdentity.GetCurrent() 返回代表当前 Windows 用户的 WindowsIdentity 对象,该对象已通过模拟进行更改。我不是 100% 确定,但我认为它就是这样工作的。

关于asp.net - 为什么启用模拟后 Thread.CurrentPrincipal.Identity 和 WindowsIdentity.GetCurrent() 会有所不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18205458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com