防止ASP.NET MVC 4在需要身份验证时重定向

时间:2014-11-30 22:20:42

标签: asp.net-mvc asp.net-mvc-4

我正在努力避免重定向。

我将此代码添加到global.asax

protected void Application_EndRequest(Object sender, EventArgs e)
{
    HttpApplication context = (HttpApplication)sender;
    context.Response.SuppressFormsAuthenticationRedirect = true;
}

它不起作用。当我调试时,我看到代码已经执行,但它会继续重新编译。

对于anuj.rohila94的请求,我分享了整个global.asax:

namespace AngularJSMVC
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
        }

        protected void Application_EndRequest(Object sender, EventArgs e)
        {

            HttpApplication context = (HttpApplication)sender;
            context.Response.SuppressFormsAuthenticationRedirect = true;
        }
    }
}

3 个答案:

答案 0 :(得分:0)

我认为这是完美的代码,不会重定向应用程序。

可能是其他代码会影响您的重定向。

为您的全局文件提供所有方法。

答案 1 :(得分:0)

请为您的实现使用自定义身份验证属性。为您的参考提供一些链接,因为我不了解您的授权实施。

http://www.dotnetcurry.com/showarticle.aspx?ID=957

http://www.codeproject.com/Articles/650240/A-Simple-Action-Filter-Overview

如果您对此有任何疑问,请与我们联系。

答案 2 :(得分:0)

您是否已检查.net框架的已安装版本以及.net框架的目标版本。有时它可能由于版本冲突而发生。