Vin*_*oni 2 c# asp.net-mvc asp.net-mvc-3
所以,我正在尝试使用以下方法重定向到我自己的AuthorizeAttribute中的错误页面:
filterContext.Result = new HttpStatusCodeResult(403);
Run Code Online (Sandbox Code Playgroud)
在我的web.config中,我最初尝试过:
<customErrors defaultRedirect="/Error" mode="On">
<error statusCode="403" redirect="/UnAuthorize" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
我试过后:
<customErrors defaultRedirect="/Shared/Error" mode="On">
<error statusCode="403" redirect="/Shared/UnAuthorize" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
然后,我创建一个ErrorController,我试过:
<customErrors defaultRedirect="/Shared/Error" mode="On">
<error statusCode="403" redirect="/Error/UnAuthorize" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
但是浏览器仍然显示403的默认错误页面,任何想法?
可能的解决方案:嗯,我看到了@bobek和@Robert Levy的答案,但我找到了另一种方式,更简单一些.
在我的AuthorizeAttribute中,我创建了一个名为RedirectOnErrorTo的属性,在我的AuthorizeAttribute的OnAuthorization方法中,我做了:
if (!string.IsNullOrEmpty(this.RedirectOnErrorTo))
{
filterContext.Result = new RedirectResult(this.RedirectOnErrorTo);
}
Run Code Online (Sandbox Code Playgroud)
所以,现在当我声明这个属性时,我选择了我想要重定向的路径.
它不像我想要只使用web.config那样自动化,但变得有用.你怎么看待家伙,这是解决这个问题的好方法?
| 归档时间: |
|
| 查看次数: |
18914 次 |
| 最近记录: |