Quantcast
Channel: ASP.NET Core
Viewing all articles
Browse latest Browse all 9386

Migrating global.asax to ASP.NET 5

$
0
0

Few days ago .NET Core RC1 got released and I gave it a go for the first time after reading a lot about it, I like it but its a bit different. I am trying to migrate a small blog (built in MVC5) to MVC 6 & .NET Core. It wasn't hard but I am really struggling to recreate the exact same global.asax settings I had in MVC 5, ASP.NET 5 no longer has global.asax so I am unable to figure out what the replacement for most of the settings are?

        protected void Application_Start()
        {
            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new RazorViewEngine());

            MvcHandler.DisableMvcResponseHeader = true;
            AntiForgeryConfig.SuppressXFrameOptionsHeader = true;

            BundleConfig.RegisterBundles(BundleTable.Bundles);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }

        protected void Application_BeginRequest()
        {
            Response.AddHeader("X-Frame-Options", "DENY");
        }

        protected void Application_EndRequest()
        {
            if (Response.StatusCode != 301 && Response.StatusCode != 302) return;

            var targetUrl = Response.RedirectLocation.Replace("ReturnUrl", "url");
            Response.RedirectLocation = targetUrl;
        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {
            string typeName;

            byte userType = (byte)(Context.Request.IsAuthenticated ? byte.Parse(User.Identity.Name.Split('|')[2]) : 1);

            switch (userType)
            {
                case 1: { typeName = "Client"; break; }
                case 2: { typeName = "Admin"; break; }
                default: { typeName = "Client"; break; }
            }

            var roles = new[] { typeName };

            if (Context.User != null)
            {
                Context.User = new GenericPrincipal(Context.User.Identity, roles);
            }
        }

        private void Application_Error(object sender, EventArgs e)
        {
            Exception ex = Server.GetLastError();

            if (ex is HttpAntiForgeryException)
            {
                Response.Clear();
                Server.ClearError();
                Response.Redirect("/error/cookie", true);
            }
        }

PLEASE, is there a way to get the above code to work in MVC 6 without leaving any of the settings? This is a deal breaker for me, THANK YOU.


Viewing all articles
Browse latest Browse all 9386

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>