web.config中关于模拟,身份验证和授权的困惑

|| 我正在尝试为我的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>
我的理解是,使用此配置,我应该能够从
WindowsIdentity.GetCurrent().Name
中检索Domain \\ username。但是,此属性返回NT AUTHORITY \\ IUSR,它是匿名访问的用户。如果我没有记错的话,我将在“授权”部分拒绝匿名访问该网站。我想念什么? 还要注意:
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name
还返回NT AUTHORITY \\ IUSR,
Request.ServerVariables[\"LOGON_USER\"]
返回一个空字符串,这与本知识库文章http://support.microsoft.com/kb/306359中找到的信息背道而驰 我正在使用.net 4.0和Windows 7开发环境。 一些资源使我明白了这一点: http://msdn.microsoft.com/en-us/library/ff647076.aspx http://support.microsoft.com/kb/306158 http://forums.asp.net/t/1121780.aspx/1?获取+ a + users + DOMAIN + username + from + a + web + application 谢谢你的时间。 编辑 应当指出,我被锁定在表单身份验证中(Windows身份验证不是一个选项),因为这是一个多租户站点,并且大多数用户将不会使用此单点登录功能。     
已邀请:
        如果您使用的是表单身份验证,则模拟是没有意义的-它仅适用于Windows身份验证。这同样适用于Request.ServerVariables [\“ LOGON_USER \”]。 您看到IUSR_的原因是,这是网站运行时所用的Windows帐户,而应使用Page.CurrentUser(WebForms)或User属性(MVC控制器),并且不进行任何强制转换。这将返回Forms Auth用户名。     

要回复问题请先登录注册