Asp.net web.config中的模拟、身份验证和授权混淆
我正在尝试检索asp.net网站项目中当前用户的windows登录用户名 我的web.config文件包含以下项目Asp.net web.config中的模拟、身份验证和授权混淆,asp.net,active-directory,web-config,single-sign-on,Asp.net,Active Directory,Web Config,Single Sign On,我正在尝试检索asp.net网站项目中当前用户的windows登录用户名 我的web.config文件包含以下项目 <identity impersonate="true"/> <authentication mode="Forms"> <forms name="app" path="/path" loginUrl="/path/login.aspx" protection="All" timeout="100
<identity impersonate="true"/>
<authentication mode="Forms">
<forms name="app" path="/path" loginUrl="/path/login.aspx" protection="All" timeout="100" />
</authentication>
<authorization>
<deny users="?" />
<allow users="*"/>
</authorization>
我正在使用.NET4.0和Windows7开发环境
一些让我想到这一点的资源:
谢谢你抽出时间
编辑
需要注意的是,我被锁定在表单身份验证中(windows身份验证不是一个选项),因为这是一个多坦能网站,大多数用户不会使用此单一登录功能。如果使用表单身份验证,则模拟没有意义-它只适用于windows身份验证。这同样适用于Request.ServerVariables[“LOGON\u USER”]
您看到IUSR_uuu的原因是,这是网站运行时使用的Windows帐户,因此您应该使用Page.CurrentUser(WebForms)或User属性(MVC控制器),而不使用强制转换。这将返回Forms Auth用户名。如果您使用的是Forms身份验证,则模拟没有意义-它仅适用于Windows身份验证。这同样适用于Request.ServerVariables[“LOGON\u USER”]
您看到IUSR_uuu的原因是,这是网站运行时使用的Windows帐户,因此您应该使用Page.CurrentUser(WebForms)或User属性(MVC控制器),而不使用强制转换。这将返回表单Auth username。我不会说模拟毫无意义。做一个像我在这个问题中所做的测试:@blowdart:+1以获得简洁明了的答案:)那么有没有办法在表单身份验证下检索Windows登录域\用户名?Page.CurrentUser不是一个属性,Page.Request.LogonUserIdentity.Name像其他任何东西一样返回NT AUTHORITY\IUSR。根本没有使用窗体身份验证的Windows登录,这就是为什么您看到了您看到的内容。是的,我研究得越多,就越能准确地看到您所说的内容。我觉得这是可能的,因为这篇msdn文章底部的表1。我不会说模仿是毫无意义的。做一个像我在这个问题中所做的测试:@blowdart:+1以获得简洁明了的答案:)那么有没有办法在表单身份验证下检索Windows登录域\用户名?Page.CurrentUser不是一个属性,Page.Request.LogonUserIdentity.Name像其他任何东西一样返回NT AUTHORITY\IUSR。根本没有使用窗体身份验证的Windows登录,这就是为什么您看到了您看到的内容。是的,我研究得越多,就越能准确地看到您所说的内容。我觉得这是可能的,因为这篇msdn文章底部的表1。