2011-10-07 152 views
3

我在ASP.NET中成功实施了基于角色的授权。当一个人没有所需的角色时,他会看到401.2的错误页面未被授权。 我现在想要完成的是在我的应用程序中有一个自定义401页面,并通过web.config中的设置将其重定向到那里。我试过这个:asp.net 4.0自定义401.2未授权自定义页面

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"><error statusCode="401" redirect="NoAccess.htm" /></customErrors>  

但是这并没有被捕获。我必须在IIS中覆盖它吗?我希望不会那样会让事情变得更加难以部署

+0

从哪里测试设置?如果您将模式设置为“RemoteOnly”,则只有当您尝试从远程客户端访问站点时才会重定向。 – mamoo

+0

我尝试了其他选项,如“关”,但没有帮助 – georgian98

+0

set customErrors mode =“On” –

回答

1

我想你可能会碰到的是你为整个应用程序设置了安全性。那就是当发生401时,重定向到NoAccess.htm失败,因为用户无权访问该文件。既然你没有发布整个文件,我不能确定,但​​这是我最好的猜测。

请确保您有一个<位置路径= “/ NoAccess.htm” > <的System.Web > <授权> <允许用户= “?”/> </authorization < < /system.web>在您的web.config文件中。