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身份验证不是一个选项),因为这是一个多租户站点,并且大多数用户将不会使用此单点登录功能。
没有找到相关结果
已邀请:
1 个回复
羔磺