Blu*_*ppy 4 c# authorization asp.net-mvc-3
在询问有关授权的问题之后,我添加了一个新的自定义属性,试图将未经授权的用户重定向到一个页面,其中包含有关请求访问等的更多详细信息等.
public class RedirectAuthorize:AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
//base.HandleUnauthorizedRequest(filterContext);
filterContext.Result = new RedirectResult("Unauthorized");
}
}
Run Code Online (Sandbox Code Playgroud)
我用这个属性和正确的(Role ="...")装饰了我的Home控制器,这个"工作"......即它在预期的时候点击方法.
我已经在调用的共享视图文件夹中添加了一个vanilla视图,Unauthorized.cshtml但我只是得到"找不到资源"404错误.
显示的URL似乎是正确的?
我的猜测是我需要指定一个控制器/动作而不是一个页面?但错误处理程序重定向到Error.cshtml不需要控制器?
谢谢你的帮助.
您正在使用的问题是RedirectResult强制浏览器请求给定的URL.但是当浏览器请求时,没有匹配的路由.因此它会抛出404错误.
尝试
filterContext.Result = new ViewResult { ViewName = "Unauthorized" };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |