[英]ASP.NET CORE MVC IDENTITY How to change url of defualt log in page?
我使用身份進行身份驗證。 但是如果我使用 [Authorize] 屬性,我會被重定向到 localhost:7174/Identity/Account/Login?ReturnUrl=%2FUser%2FUser 而我沒有這樣的頁面。 如何更改此 url? 我沒有找到任何可以改變它的方法或屬性。 此外,我還添加了帶有 Scaffold 的 Identity 頁面。 但是即使現在它也說不可能到達這樣的頁面。 我應該怎么做更好?
我不知道什么對你有用,所以這是我的 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;
options.Password.RequireUppercase = false;
options.Password.RequireDigit = false;
options.Password.RequiredLength = 1;
options.Password.RequireLowercase = false;
options.Password.RequireNonAlphanumeric = false;
});
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();
如果您在文檔中查看此處似乎有一個選項可以在啟動時傳遞,允許您設置 url 名稱“loginUrl”
UserInteraction LoginUrl、LogoutUrl、ConsentUrl、ErrorUrl、DeviceVerificationUrl 設置登錄、注銷、同意、錯誤和設備驗證頁面的 URL。
所以合理地你應該能夠做到
public void ConfigureServices(IServiceCollection services)
{
...
var builder = services.AddIdentityServer(
options =>
{
...
options.loginUrl = "myLoginUrl"
}
);
...
}
關於更改默認登錄路徑。 我發現的最好方法是在我的 program.cs 中使用 CookieAuthenticationOptions 更改它:
builder.Services.PostConfigure<CookieAuthenticationOptions>(IdentityConstants.ApplicationScheme, options =>
{
options.LoginPath = "/SignIn";
});
嘗試以其他方式(使用身份服務器)更改它沒有成功。
這對我有幫助: 在 ASP.NET Core 2.2 MVC 和 Identity 中設置登錄路徑。
至於第二個問題(關於身份腳手架頁面,無法訪問),我在我的 program.cs 中錯過了這個:
app.MapRazorFiles();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.