Ja próbuje przekierować do innego URL logowania w ASP.NET MVC6ASP.NET rdzeń, zmiana domyślnego przekierować za nieuprawnione
Moje konto metoda logowania kontroler posiada atrybut Route
zmiany adresu URL.
[HttpGet]
[AllowAnonymous]
[Route("login")]
public IActionResult Login(string returnUrl = null)
{
this.ViewData["ReturnUrl"] = returnUrl;
return this.View();
}
Podczas próby uzyskania dostępu do unathorized strony, jestem przekierowywany do nieprawidłowego adresu URL, powinien on być po prostu
/login
ale zamiast dostaćhttp://localhost/Account/Login?ReturnUrl=%2Fhome%2Findex
mam skonfigurowane uwierzytelnianie cookies ścieżka w następujący sposób:
services.Configure<CookieAuthenticationOptions>(opt =>
{
opt.LoginPath = new PathString("/login");
});
I hav e dodano filtr domyślny, aby upewnić się, że wszystkie adresy URL wymagają domyślnie uwierzytelnienia.
services.AddMvc(
options =>
{
options.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()));
});
Sprawdziłem, że adres URL /login
robi w rzeczywistości załadować stronę logowania, podczas /account/login
nie, jak oczekiwano.
edit: Zostawiłem trasy jak jest (oprócz zmiany domyślnego kontrolera i akcji)
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Site}/{action=Site}/{id?}");
});
Czy mógłbyś pokazać swoją konfigurację trasy w 'Configure()'? – juunas
@juunas: Dodałem trasy do pytania – Jim
czy używasz asp.net-core-identity? – tmg