微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重定向“ / Error / UnAuthorized”在ASP.NET MVC中不起作用

如何解决重定向“ / 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\");
    }
    //...
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。