Vor wenigen Tagen wurde .NET Core RC1 veröffentlicht und ich habe es zum ersten Mal getestet, nachdem ich viel darüber gelesen habe. Ich mag es, aber es ist ein bisschen anders. Ich versuche, ein kleines Blog (eingebaut in MVC5) zu MVC 6 & .NET Core zu migrieren. Es war nicht schwer, aber ich habe wirklich Mühe, genau die gleichen globalen.asax-Einstellungen wiederherzustellen, die ich in MVC 5 hatte, ASP.NET 5 hat nicht mehr global.asax, so dass ich nicht herausfinden kann, was der Ersatz für die meisten Einstellungen ist sind?Migration von global.asax nach ASP.NET 5
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);
}
}
BITTE, gibt es eine Möglichkeit, den oben genannten Code in MVC 6 zu arbeiten, ohne irgendwelche der Einstellungen zu verlassen? Dies ist ein Deal Breaker für mich, DANKE.
Es wäre ein interessantes Experiment, diesen Code auf ein Github Repo zu setzen und ihn nach der Konvertierung nebeneinander mit einem MVC 6 Projekt zu haben. Wenn Sie am Ende den Code drücken, lassen Sie es mich wissen, ich würde gerne sehen, wie es aussieht und was es braucht, um es zu portieren. – davidfowl
Sie können alles tun, was Sie in global.aspx tun, aber durch die Verwendung von maßgeschneiderter Middleware. Making Middleware in asp.net Kern ist sehr einfach zu tun. http://andrewlock.net/adding-default-security-headers-in-asp-net-core/ –