加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 为什么在开启模拟时Thread.CurrentPrincipal.Identit

发布时间:2020-12-16 07:24:41 所属栏目:asp.Net 来源:网络整理
导读:我启用了模拟和 Windows身份验证. authentication mode="Windows" /identity impersonate="true" userName="name" password="passord"/ 但Thread.CurrentPrincipal.Identity.Name返回经过身份验证的用户的名称,WindowsIdentity.GetCurrent()返回模拟身份. 这
我启用了模拟和 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()返回一个WindowsIdentity对象,该对象表示当前Windows用户,该用户已通过Impersonation进行了更改. 我不是100%肯定它,但这就是我认为它的工作原理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读