2015-08-09 20 views
6

Używam asp.net 5 i Identity 3 do uwierzytelniania użytkowników, ale zawsze przekierowuję do domyślnego adresu URL logowania, którym jest "Konto/login". Chcę to zmienić, ale wydaje się, że nie ma gdzie ustawić tych opcji. Używam metody AddIdentity() w metodzie Configure(). Proszę pomóż. DziękiJak zmienić adres URL logowania podczas korzystania z asp.net 5

+0

Używam atrybutu "Autoryzuj" dla chronionych działań. –

+0

Czy sprawdziłeś klasę startową owin? Adres URL logowania jest zazwyczaj zdefiniowany w oprogramowaniu użytkowym UseCookieAuthentication. –

+0

Tak, próbuję to: app.UseCookieAuthentication (options => options.LoginPath = new PathString ("Admin/Login")); ale pojawia się błąd: System.ArgumentException Nazwa parametru: wartość –

Odpowiedz

6
app.UseCookieAuthentication(options => 
{ 
    options.LoginPath = new PathString("/Admin/Login"); 
    options.LogoutPath = new PathString("/Admin/LogOff"); 
}, 
IdentityOptions.ApplicationCookieAuthenticationScheme 
); 
+0

Dzięki. W większości przypadków programiści będą używać dostosowanego adresu URL logowania. Jeśli jest to kod dostosowujący adres URL logowania i ustawienie uwierzytelniania plików cookie, jaki jest sens UseIdenitty()? –

+0

te metody rozszerzenia są po prostu pomocne i wygodne, nie trzeba ich używać. Podejrzewam, że większość ludzi po prostu użyje dostarczonych Kontrolerów Konta i Zarządzania, które są zawarte w szablonie projektu, to naturalne, że podłączają ścieżkę do kontrolera konta, ponieważ to jest to, co dostarczyli. Metody rozszerzenia ukrywają pewne rzeczy, które ludzie mogą chcieć zmienić. Możesz albo podłączyć wszystko, co potrzebujesz samemu, albo możesz zadzwonić. UŻYTKOWNIKA, a potem podłączyć swoje własne rzeczy, aby je zastąpić, lub możesz je pominąć. UŻYWaj i po prostu zrób to sam. –

+0

@ Xiaowei.Jia ma świetny punkt. Możesz zasugerować (mvc jest open source i zaakceptować sugestie za pośrednictwem GitHub do takich rzeczy), że UseIdentity obsługuje parametr opcji dla wspólnego dostosowywania. więc możesz skończyć z czymś takim jak UseIdentity (opt => opt.LoginPath = ...) i innymi popularnymi opcjami. –

12

Korzystanie .Net rdzenia 1.0.0 + tożsamości Facebook OAuth, przyjętą odpowiedź nie kompiluje. To właśnie pracował:

public void ConfigureServices(IServiceCollection services) 
{ 
    (...)  
    services.Configure<IdentityOptions>(options => 
    { 
     options.Cookies.ApplicationCookie.LoginPath = new PathString("/Login"); 
     options.Cookies.ApplicationCookie.LogoutPath = new PathString("/Logoff"); 
    }); 
} 
3

z ASP.NET 1.1 + rdzenia tożsamości Używam tego:

public void ConfigureServices(IServiceCollection services) 
{ 
    (...) 
    services.AddIdentity<ApplicationUser, IdentityRole>(x => 
    { 
     x.Cookies.ApplicationCookie.LoginPath = new PathString("/Admin/Login"); 
     x.Cookies.ApplicationCookie.LogoutPath = new PathString("/Admin/LogOff"); 
    } 
} 
+0

Dla Core 1.1, to jest odpowiedź. Używam niestandardowego dostawcy tożsamości i nadal działa świetnie. –

1

z ASP.NET 2.0 + Rdzeń Tożsamość ta została zmieniona na:

services.ConfigureApplicationCookie(options => options.LoginPath = "/Account/LogIn"); 

Więcej o migrating to 2.0 here.

+1

Używam tożsamości w AspNetCore 2, a to działa dla mnie. Dzięki! –