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_restricted401.htm" responseMode="File" /> 使用响应模式“文件”IIS只加载该文件的内容并显示它,它仍然将401状态发送回客户端. 我以前使用’ExecuteURL’,但已经知道文件模式工作得更好.您只需确保错误页面中的任何链接资源仍然有效. (编辑:海洋资讯信息网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


