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.