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

ASP.NET模拟问题(第2部分)

发布时间:2020-12-16 03:25:10 所属栏目:asp.Net 来源:网络整理
导读:这是关于无法冒充当前登录的 Windows用户的上一篇文章的后续内容.有很多好的建议,但之前的主题变得混乱,所以我正在重置这篇文章.希望在下面记录的当前状态下,问题显而易见.这是一条很好的路径,所以我不得不相信我所缺少的是一个小配置步骤. 问题:我需要让AS
这是关于无法冒充当前登录的 Windows用户的上一篇文章的后续内容.有很多好的建议,但之前的主题变得混乱,所以我正在重置这篇文章.希望在下面记录的当前状态下,问题显而易见.这是一条很好的路径,所以我不得不相信我所缺少的是一个小配置步骤.

问题:我需要让ASP.NET模拟当前登录的用户.当我在IIS 7.5下运行时,它不起作用. IIS Express工作正常,但我认为这是因为调试会话在我的用户ID下运行.

我使用Environment.Username来确定该用户是谁.有人建议此属性始终返回登录的用户名,但在我的测试中,它会从IIS返回模拟用户.

例如,如果我的web.config有……

<identity impersonate="true" />

当我使用该设置在IIS 7.5下运行时,Environment.Username返回IUSR.我相信这是IIS匿名用户帐户.

如果我将web.config更改为…

<identity impersonate="true" userName="domainjlivermore" password="mypassword" />

…然后Environment.Username返回jlivemore.但是,如果没有我在web.config中明确设置它,我需要它返回jlivermore.

这是我的IIS设置……

.NET授权规则

认证

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

基本设置

解决方法

我不确定您是否找到了答案,但如果有人遇到问题,您需要在web.config文件中使用以下内容

<authentication mode="Windows"/>
<identity impersonate="true"/>

在IIS中,您将需要启用Asp.net模拟以及启用Windows身份验证,其他应该被禁用.在Windows身份验证中,转到“高级设置”并取消选中“启用内核模式”身份验证.应该这样做.现在应该为本地Intranet应用程序设置您的站点,并使用以下任何一种方法

System.Security.Principal.WindowsIdentity.GetCurrent().Username()
HttpContext.Current.User.Identity.Name
System.Threading.Thread.CurrentPrincipal.Identity.Name

但是使用Environment.Username只会返回服务器名称,希望这有助于任何人在努力解决这个问题

(编辑:李大同)

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

    推荐文章
      热点阅读