Joh*_*ore 5 asp.net impersonation windows-security asp.net-mvc-3 asp.net-mvc-2
这是关于无法冒充当前登录的Windows用户的上一篇文章的后续内容.有很多好的建议,但之前的主题变得混乱,所以我正在重置这篇文章.希望在下面记录的当前状态下,问题显而易见.这是一条很好的路径,所以我不得不相信我所缺少的是一个小配置步骤.
问题:我需要让ASP.NET模拟当前登录的用户.当我在IIS 7.5下运行时,它不起作用.IIS Express工作正常,但我认为这是因为调试会话在我的用户ID下运行.
我Environment.Username用来确定这个用户是谁.有人建议此属性始终返回登录的用户名,但在我的测试中,它会从IIS返回模拟用户.
例如,如果我的web.config有......
<identity impersonate="true" />
Run Code Online (Sandbox Code Playgroud)
当我使用该设置在IIS 7.5下运行时,Environment.Username返回IUSR.我相信这是IIS匿名用户帐户.
如果我将web.config更改为...
<identity impersonate="true" userName="domain\jlivermore" password="mypassword" />
Run Code Online (Sandbox Code Playgroud)
...然后Environment.Username返回jlivemore.但是,如果没有我在web.config中明确设置它,我需要它返回jlivermore.
这是我的IIS设置......
.NET授权规则

认证

一个问题,如果我禁用匿名身份验证,那么系统会提示我登录该站点.我想如果您使用域上的Active Directory帐户登录,那么此挑战不会出现?即使我在此提示中输入我的用户名/密码,我仍然无法进行模拟.

基本设置

我遇到了与你描述的类似的问题。问题的基本症结在于模拟和委托之间存在差异。我对此的简单理解是,当客户端和服务器位于同一台机器上时,模拟就会起作用。但是,如果客户端位于不同的计算机上,则需要委派。
模拟和委托有什么区别?
模拟将原始调用者的身份传递到同一计算机上的后端资源。 委派将原始调用者的身份传递给除运行服务的计算机之外的计算机上的后端资源。
相关问题
| 归档时间: |
|
| 查看次数: |
8528 次 |
| 最近记录: |