这是上一篇关于无法模拟当前登录的 Windows 用户的帖子的后续内容。有很多很好的建议,但是之前的帖子越来越乱了,所以我正在用这篇文章重新设置。希望根据下面记录的当前状态,问题是什么很明显。这是一条陈旧的道路,所以我必须相信我所缺少的只是一个小配置步骤。
问题:我需要让 ASP.NET 模拟当前登录的用户。当我在 IIS 7.5 下运行时,它不起作用。IIS Express 工作正常,但我相信这是因为调试会话是在我的用户 ID 下运行的。
我Environment.Username
用来确定这个用户是谁。有人建议此属性始终返回登录的用户名,但根据我的测试,它会返回来自 IIS 的模拟用户。
例如,如果我的 web.config 有……</p>
<identity impersonate="true" />
当我使用该设置在 IIS 7.5 下运行时,Environment.Username
返回IUSR。我相信这是 IIS 匿名用户帐户。
如果我将 web.config 更改为...</p>
<identity impersonate="true" userName="domain\jlivermore" password="mypassword" />
… 然后 Environment.Username 返回 jlivemore。但是,我需要它返回 jlivermore 而无需我在 web.config 中明确设置它。
这是我的 IIS 设置...</p>
.NET 授权规则
验证
一个问题,如果我禁用匿名身份验证,则会提示我登录该站点。我想如果您使用域上的 Active Directory 帐户登录,那么这个挑战就不会出现?即使我在此提示中输入我的用户名/密码,我仍然无法让模拟工作。
基本设置