如何解决重定向“ / Error / UnAuthorized”在ASP.NET MVC中不起作用
| 谁能帮我以下代码为什么不起作用?调试时不会发生重定向:protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
Redirect(\"/Error/UnAuthorized\");
}
解决方法
以下应该工作:
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
var url = Url.Action(\"UnAuthorized\",\"Error\");
requestContext.HttpContext.Response.Redirect(url);
}
话虽如此,您不应该在Initialize
方法中进行任何重定向。我个人从来不需要重写此方法。更糟糕的是,您似乎在用这种方法处理授权,这很不好。我强烈建议您为此使用自定义Authorize属性。
,在MVC中,您应该返回重定向结果,而不是使用Response.Redirect。
另外,我会说您收到的错误(发送标题),您在请求中处理得太迟了。
这是从操作方法重定向的示例。
[HttpGet]
public ActionResult Basecamp()
{
if (!GetPlanPolicyForUser().IntegrationEnabled)
{
Log<ApplicationsController>.Action( \"...\" );
return Redirect(\"/applications/notsupported\");
}
//...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。