it-swarm.com.de

Anmelde-URL für ASP.NET Core Identity-Änderung

Ich verwende ASP.NET Core 2.1, und ich habe Scaffolding zum Hinzufügen von Identity verwendet. Dies funktioniert jedoch in Ordnung. Wenn ich jedoch versuche, eine Seite aufzurufen, für die ein Login erforderlich ist, muss ich Folgendes tun: /Identity/Account/Login?ReturnUrl

Wie ändere ich es, um einfach zu/Account/Login zu gehen, was meine eigene Login-Seite ist, die ich erstellt habe.

Ich habe das versucht:

services.ConfigureApplicationCookie(options =>
                {
                    options.AccessDeniedPath = "/Account/AccessDenied";
                    options.Cookie.Name = "Cookie";
                    options.Cookie.HttpOnly = true;
                    options.ExpireTimeSpan = TimeSpan.FromMinutes(720);
                    options.LoginPath = "/Account/Login";
                    options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
                    options.SlidingExpiration = true;
                });

aber es geht immer noch nach/Identität /

5
Kyle

Ich bin gerade auf dieses Thema gestoßen. Ich löste es, indem ich meine bewegte 

services.ConfigureApplicationCookie-Aufruf an nach meinem services.AddIdentity-Aufruf in ConfigureServices

4
Paul

Prüfen Sie, wie Sie den Identitätsservice registrieren, wenn Sie:

services.AddDefaultIdentity<IdentityUser>(options => { }) .AddEntityFrameworkStores<ApplicationDbContext>();

ersetze es mit 

services.AddIdentity<IdentityUser, IdentityRole>(options => { }) .AddEntityFrameworkStores<ApplicationDbContext>(); und bewahren Sie Ihren Code in der ConfigureApplicationCookie auf, die in meinem Fall funktioniert hat.

3
Sly

Versuchen Sie, new PathString("...") hinzuzufügen und die Route in der Steuerung festzulegen.

services.ConfigureApplicationCookie(options =>
{
    options.AccessDeniedPath = new PathString("/Account/AccessDenied");
    options.Cookie.Name = "Cookie";
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(720);
    options.LoginPath = new PathString("/Account/Login");
    options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
    options.SlidingExpiration = true;
});

[AllowAnonymous]
[Route("Account")]
public class SecurityController : Controller
{
    [Route("Login/{returnUrl?}")]
    public IActionResult Login(string returnUrl = null)
    {
        ViewData["ReturnUrl"] = returnUrl;

        return View();
    }
}
2

Verschieben Sie services.ConfigureApplicationCookie nach services.AddIdentity und entfernen Sie AddDefaultUI in den Diensten. Referenz hier

1
Kelin
 services.ConfigureApplicationCookie(options =>
            {
                options.Events = new CookieAuthenticationEvents
                {
                    OnRedirectToLogin = x =>
                    {
                        x.Response.Redirect("Account/Login");
                        return Task.CompletedTask;
                    }
                };

            });
0
Pouria Kaveh