iis-7.5 – IIS 7.5:如何使用Windows身份验证配置自定义身份验
我有一个在IIS 7.5下运行的php网站.该站点受 Windows身份验证保护,工作正常: 当用户访问该站点时,系统会要求他们输入用户名/密码,并在通过身份验证后通过.如果用户单击“取消”或错误输入密码3次,则会显示401错误页面: 现在我想显示解释如何登录的自定义页面.所以我转到错误页面,选择状态代码401.2并将其指向我想要显示的页面: 然后确保为每个人启用自定义错误.和kaa-boom!身份验证不再起作用,用户不会看到密码提示.正如文档所述,Windows身份验证的工作原理是首先发送401回复,然后浏览器会询问用户提供者凭据,然后他们会确定下一步该做什么. 这里发生了什么:首次请求页面IIS尝试发送401标头,但注意到web.config说“在401重定向到此页面”.而不是身份验证,它只是提供重定向页面. 我试过替换401,401.1,401.2 – 没有任何区别. 我做错了什么以及如何在用户身份验证错误上提供自定义页面? 附:这是web.config: <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpErrors errorMode="Custom"> <remove statusCode="500" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="401" subStatusCode="-1" /> <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" /> <error statusCode="404" prefixLanguageFilePath="" path="/not_restricted/404.htm" responseMode="ExecuteURL" /> </httpErrors> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webServer> <system.web> <identity impersonate="false" /> <customErrors defaultRedirect="http://www.myserver.com/not_restricted/500.htm" mode="Off"> </customErrors> </system.web> </configuration>试试这个: 更改: <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" /> 至 <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="not_restricted\401.htm" responseMode="File" /> 使用响应模式“文件”IIS只加载该文件的内容并显示它,它仍然将401状态发送回客户端. 我以前使用’ExecuteURL’,但已经知道文件模式工作得更好.您只需确保错误页面中的任何链接资源仍然有效. (编辑:ASP站长网) |