在HttpContext.Current.User.Principal和WindowsIdentity.GetCurrent()之间打开Windows身份验证和身份模拟的asp.NET环境有什么不同?
答案 0 :(得分:12)
根据WindowsIdentity.GetCurrent().Name
vs. User.Identity.Name
上的论坛:
User.Identity.Name
表示从IIS传递的标识。WindowsIdentity.GetCurrent().Name
是线程运行的标识。
根据您在IIS中的应用验证设置,它们将返回不同的值:
| Anonymous | Impersonate | User.Identity.Name | WindowsIndentiy.GetCurrent() |
|-----------|-------------|--------------------|-------------------------------|
| Yes | True | Empty String | IUSR_<machineName> |
| Yes | False | Empty String | NT Authority\Network Service |
| No | True | domain\user | domain\user |
| No | False | domain\user | NT Authority\Network Service |
<强>图例强>: