2015-11-29 2 views
0

Я пытаюсь установить новый маршрут для входа в систему, выход из системы и т.д.Asp.Net MVC vNext Идентичность Войти изменение маршрута не работает

Прямо сейчас, когда я использую app.UseIdentity() он автоматически маршруты в /Account/Login.

Когда я пытаюсь закомментировать app.UseIdentity, хотя и добавить

MapRoute(
    name: "Login", 
    defaults: new { controller = "Security", action = "Login" }, 
    template: "Login/{returnUrl?}") 

и

//app.UseIdentity(); 

app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
    AuthenticationScheme = "Cookies", 
    LoginPath = new PathString("/Login"), 
    LogoutPath = new PathString("/Logout") 
}); 

это ничего, кроме маршрута не делать на моей домашней странице и показать пустую страницу (I предположим, потому что это не разрешено).

Каков правильный способ сделать это?

+0

Пожалуйста, покажите вам Startup.cs файл. –

+0

Я уже редактировал, чтобы показать ответ –

ответ

0

Просто понял это, глядя через источник Asp.Net:

https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNet.Identity/IdentityCookieOptions.cs

public static class MyIdentityExtensions 
{ 
    public static IApplicationBuilder UseMyIdentity(this IApplicationBuilder app) 
    { 
     if (app == null) { 
      throw new ArgumentNullException(nameof(app)); 
     } 

     var options = app.ApplicationServices.GetRequiredService<IOptions<IdentityOptions>>().Value; 

     app.UseCookieAuthentication(options.Cookies.ExternalCookie); 
     app.UseCookieAuthentication(options.Cookies.TwoFactorRememberMeCookie); 
     app.UseCookieAuthentication(options.Cookies.TwoFactorUserIdCookie); 

     app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      LoginPath = new PathString("/Login"), // REPLACED THIS 
      LogoutPath = new PathString("/Logout"), // ADDED THIS 
      AuthenticationScheme = options.Cookies.ApplicationCookieAuthenticationScheme, 
      AutomaticAuthenticate = true, 
      AutomaticChallenge = true, 
      Events = new CookieAuthenticationEvents 
      { 
       OnValidatePrincipal = SecurityStampValidator.ValidatePrincipalAsync 
      } 
     }); 

     return app; 
    } 
} 

И в Startup.cs

app.UseMyIdentity() 
Смежные вопросы