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

asp.net – 帮助理解模仿

发布时间:2020-12-16 07:44:17 所属栏目:asp.Net 来源:网络整理
导读:有人可以帮我理解“冒充”的概念吗? 我理解的方式是,当模拟发生时,代码代表某些身份执行. 因此,对于网页,只要禁用模拟,网页将始终在其配置的帐户下运行. 如果已启用,我可以“覆盖”其默认帐户并设置我希望运行Web应用程序的帐户. 所以,如果我使用IIS7,我有
有人可以帮我理解“冒充”的概念吗?

我理解的方式是,当模拟发生时,代码代表某些身份执行.

因此,对于网页,只要禁用模拟,网页将始终在其配置的帐户下运行.

如果已启用,我可以“覆盖”其默认帐户并设置我希望运行Web应用程序的帐户.

所以,如果我使用IIS7,我有以下内容:
– 将身份设置为自定义帐户“user1”的应用程序池.
– 一个asp.net网站,其应用程序池设置为上面的一个,并且禁用了模拟.
– 启用Windows身份验证.

我还有以下代码:

IIdentity ii = Thread.CurrentPrincipal.Identity;
???????IIdentity iii = Page.User.Identity;

如果我访问该页面,我会被要求提供Windows凭据,我会介绍’user2’凭据.

由于假冒被禁用,我希望IIdentity名称为’user1′,它不是’user2′.

有人可以帮我理解发生了什么吗?我想我完全误解了“冒充”的概念.

谢谢

更新1

搜索一段时间后,我偶然发现了这个链接:
http://msdn.microsoft.com/en-us/library/aa302377.aspx

似乎有三个IIdentity对象.

HttpContext.Current.User.Identity
Thread.CurrentPrincipal.Identity
WindowsIdentity i2 = WindowsIdentity.GetCurrent();

从链接我了解到:

HttpContext.Current.User.Identity:表示请求页面的当前用户.

Thread.CurrentPrincipal.Identity:当前正在执行该线程的标识.我想这个标识将是当前Web请求运行的标识,它的asp.net角色将定义用户在应用程序中可以做什么和不能做什么.

我想大多数时候HttpContext.Current.User.Identity和Thread.CurrentPrincipal.Identity都是同一个用户,但是对于某些情况我觉得请求页面的用户和Thread.CurrentPrincipal.Identity可能不同.

然后是:
WindowsIdentity i2 = WindowsIdentity.GetCurrent();

链接说:“WindowsIdentity = WindowsIdentity.GetCurrent(),它返回当前正在执行的Win32线程的安全上下文的标识.”

在做了一些允许禁用“模拟”的测试之后,对于我当前的场景,我发现这是被模拟的身份.

如果我没有冒充,’WindowsIdentity.GetCurrent();’会反映应用程序池中已配置的用户,如果我进行模拟,则身份会更改为我在web.config中设置的身份:

< identity impersonate =“true”password =“**”userName =“****”/>

更新2

如果我将web.config设置为:
< identity impersonate =“true”/>

WindowsIdentity.GetCurrent()在用户发出请求时被模拟:

HttpContext.Current.User.Identity
Thread.CurrentPrincipal.Identity
WindowsIdentity.GetCurrent()

是同一用户,请求页面的用户.

解决方法

使用模拟时,ASP.NET应用程序可以选择使用代表其运行的客户端的标识来执行.这样做的通常原因是避免处理ASP.NET应用程序代码中的身份验证和授权问题.相反,您依靠IIS对用户进行身份验证,并将经过身份验证的令牌传递给ASP.NET应用程序,或者,如果无法对用户进行身份验证,则传递未经身份验证的令牌.

来自非常好的文章ASP.NET Impersonation

(编辑:李大同)

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

    推荐文章
      热点阅读