我正在运行ASP.NET(VB)4.6.1 Web窗体应用程序。我正在使用Windows身份验证(<authentication mode="Windows" />
)
该方案是允许任何经过身份验证的Windows用户访问登录页面。 “Check Admins”活动目录安全组中的任何用户都应该可以访问Admin子文件夹中的任何页面。
root web.config有:
<authorization>
<deny users="?" />
</authorization>
Admin web.config有:
<authorization>
<allow roles="domain\Check Admins" />
<deny users="*" />
</authorization>
在目标网页上,我列举了用户拥有的所有角色:
test &= "<br/><h3>You have the following roles:</h3>"
For Each r In Roles.GetRolesForUser()
test &= r & "<br/>"
Next
我已经完成了几个设置和web.config更改(大概如下所述)。我可以在我的开发PC上按预期工作但在部署到运行Windows 2008 R2和IIS 7.5的测试服务器时无法使其工作。我可以让网站出现一些时间,但只有我去http://localhost。当我使用完全限定名称时,它不会出现:http:// test.mysite.net
以下是更改&amp;设置我试过了:
在没有假冒的情况下跑步时:
Dev Machine:
一切按预期工作。
IIS 7.5服务器(http://localhost):
IIS 7.5服务器(FQDN:http:// Test.mysite.net): 永无止境的安全挑战
两个服务器站点都返回 HTTP错误500.24 - 内部服务器错误 检测到的ASP.NET设置不适用于集成管理管道模式。
在开发计算机上添加<identity impersonate="true"/>
:
HTTP错误500.24 - 内部服务器错误 检测到的ASP.NET设置不适用于集成管理管道模式。
最有可能的原因: •system.web / identity@impersonate设置为true。
添加
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
以上模仿给出:
Dev Machine :(与首次运行相同)
IIS 7.5服务器(localhost):
IIS 7.5服务器(FQDN:http:// Test.mysite.net): 永无止境的安全挑战
我花了几个小时梳理Google和其他地方的帖子。我不知道这是不是.Net 4.5+或者我错过了什么。如何让它正确读取角色并对文件夹进行身份验证?
为什么当我尝试使用完整的URL访问该页面时,它完全无法通过身份验证?
答案 0 :(得分:0)
对于其中的90%,事实证明Active Directory服务器具有过期的证书,因此拒绝验证来自Web服务器的请求。奇怪的是,它确实对在PC上登录Windows帐户的所有用户进行了身份验证。我发布此信息是为了防止其他人遇到类似的问题。 虽然,我仍然无法弄清楚服务器本身的原因,导航到完整的URL仍然无法进行身份验证,但转到Localhost工作正常。