我有以下结构
我正在尝试允许匿名访问login.aspx和windows authenication to reallysecure / homepage.aspx
我的IIS身份验证配置为仅启用匿名。
这是我的web.config
<?xml version="1.0"?>
<configuration>
<location path="reallysecure">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true"></windowsAuthentication>
</authentication>
</security>
</system.webServer>
当我导航到login.aspx时,一切都按预期工作。但是,当我重定向到reallysecure / homepage.aspx时,我收到以下错误:
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
81: <authentication>
82: <windowsAuthentication enabled="true"></windowsAuthentication>
83: </authentication>
如何设置web.config和IIS来完成我需要的工作?
谢谢!
答案 0 :(得分:0)
这是一个身份验证与授权的问题。 Windows身份验证应在根级别设置,并应用于整个站点。但是在根级别,您将指定允许匿名用户,并且在“reallysecure”中指定不允许匿名用户。
因此,不是在该位置的身份验证部分,而是设置授权部分:
<authorization>
<deny users="?"/>
</authorization>
(?==匿名)
而且,在根级别,它应该是:
<authorization>
<allow users="*"/>
</authorization>
(* ==所有用户,包括匿名用户)