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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...