如果我没有获得控制器操作的授权,我会得到一个空白页面,没有错误消息?我想显示某种消息,这是我的设置:
- class MyAuth : AuthorizeAttribute
- {
- protected override bool AuthorizeCore(HttpContextBase httpContext)
- {
- if (!httpContext.User.Identity.IsAuthenticated)
- return false;
- return MyIsCurrentUserInRoles(Roles.Split(",".tocharArray()));
- }
- }
用作
- [Myauth(Roles="admin")]
- class MyController: Controller
- {
- }
当我没有被授权时,结果是空白页?
这是默认行为吗?如果是这样,我在哪里更改它以产生不真实的消息?
解决方法
是的,这是在ASP.Net开发服务器中运行时的默认行为:
ASP.Net MVC Authorisation action filter
您可以通过编辑web.config将其重定向到页面,以包含错误401的重定向:
- <customErrors defaultRedirect="ErrorPage.aspx" mode="On">
- <error statusCode="401" redirect="AccessDenied.aspx" />
- </customErrors>