es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ASP.NET CORE MVC IDENTITY ¿Cómo cambiar la URL de la página de inicio de sesión predeterminada?

Tengo autenticación utilizando Identity.
Pero si uso el atributo [Authorize], soy redirigido a localhost:7174/Identity/Account/Login?ReturnUrl=%2FUser%2FUser aunque no tengo esa página. ¿Cómo puedo cambiar esta URL? No encontré ningún método o propiedad que pueda cambiar eso.
Además, agregué esas páginas de Identity con Scaffold. Pero incluso ahora dice que es imposible acceder a esa página. ¿Qué debería hacer mejor?

No sé qué podría ser útil para ti, así que aquí está mi program.cs

“`
using DreamWeb.Models;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddMvc();
builder.Services.AddControllersWithViews();
builder.Services.AddScoped<iuserservice, userservice="">();
builder.Services.AddDbContext<dreamscontext>(options =>
options.UseSqlServer("server=SCAT\SQLEXPRESS; database=dreams_web; Trusted_Connection=True; MultipleActiveResultSets=true"));
builder.Services.AddDefaultIdentity<useraccount>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<dreamscontext>();
builder.Services.AddAuthentication().AddCookie();

builder.Services.Configure<identityoptions>(options =>
{
options.SignIn.RequireConfirmedPhoneNumber = false;
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedAccount = false;

<pre><code>options.Password.RequireUppercase = false;
options.Password.RequireDigit = false;
options.Password.RequiredLength = 1;
options.Password.RequireLowercase = false;
options.Password.RequireNonAlphanumeric = false;
</code></pre>

});

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();
“`</iuserservice,>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para cambiar la URL de redirección predeterminada al usar el atributo [Authorize] con ASP.NET Identity, puede utilizar el siguiente código en su archivo Startup.cs:

    services.ConfigureApplicationCookie(options =>
    {
        options.LoginPath = "/Account/Login";
        options.AccessDeniedPath = "/Account/AccessDenied";
    });
    

    Esto cambiará la URL de redirección predeterminada a “/Account/Login” en lugar de “/Identity/Account/Login”, y “/Account/AccessDenied” en lugar de “/Identity/Account/AccessDenied”. Reemplace las rutas con las rutas correctas para su aplicación.

    En cuanto al problema con las páginas de identidad generadas, asegúrese de haber agregado las rutas necesarias en su archivo Startup.cs. Puede agregar el siguiente código:

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapRazorPages();
    });
    

    Esto agregará soporte para las páginas Razor a su aplicación, incluyendo las páginas de identidad. Asegúrese también de haber agregado las declaraciones de uso necesarias en la parte superior de su archivo Startup.cs:

    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.HttpsPolicy;
    using Microsoft.AspNetCore.Identity;
    using Microsoft.AspNetCore.Identity.UI;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.EntityFrameworkCore;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    

    Una vez que haya agregado las rutas y declaraciones de uso necesarias, debería poder acceder a las páginas de identidad generadas sin problemas.

Comments are closed.