Asp.net 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

我正在尝试检索asp.net网站项目中当前用户的windows登录用户名

我的web.config文件包含以下项目

        <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。