Aji*_*oel 2 c# asp.net-core asp.net-core-identity
我已根据 ASP.NET Core 项目中的 Scaffold Identity 将我的 asp.net core 2.2 应用程序配置为脚手架身份(以便我可以自定义其外观)=>创建完整的身份 UI 源链接。当我直接在浏览器中请求时, http ://localhost:12345/identity/account/login url 有效,但当我将其作为主页上的链接包含时,它不起作用。我究竟做错了什么?
启动.cs:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<IdentityUser, IdentityRole>()
//.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).
AddRazorPagesOptions(options =>
{
options.AllowAreas = true;
options.Conventions.AuthorizeAreaFolder("Identity", "/Account/Manage");
options.Conventions.AuthorizeAreaPage("Identity", "/Account/Logout");
});
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = $"/Identity/Account/Login";
options.LogoutPath = $"/Identity/Account/Logout";
options.AccessDeniedPath = $"/Identity/Account/AccessDenied";
});
services.AddSingleton<IEmailSender, EmailSender>();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseStatusCodePagesWithReExecute("/Error", "?code={0}");
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
_Layout.cshtml:主页布局中登录的链接。
<a asp-page="/identity/account/login"
class="btn btn-sm btn-white btn-icon rounded-pill d-none d-lg-inline-flex"
data-toggle="tooltip" data-placement="left">
<span class="btn-inner--icon"><i class="fas fa-sign-in"></i></span>
<span class="btn-inner--text">Login</span>
</a>
Run Code Online (Sandbox Code Playgroud)
有两种方法可以做到这一点。
方法一:使用href
<a href="/identity/account/login"
class="btn btn-sm btn-white btn-icon rounded-pill d-none d-lg-inline-flex"
data-toggle="tooltip" data-placement="left">
<span class="btn-inner--icon"><i class="fas fa-sign-in"></i></span>
<span class="btn-inner--text">Login</span>
</a>
Run Code Online (Sandbox Code Playgroud)
方法二:
<a asp-area="Identity" asp-page="/Account/Login"
class="btn btn-sm btn-white btn-icon rounded-pill d-none d-lg-inline-flex"
data-toggle="tooltip" data-placement="left">
<span class="btn-inner--icon"><i class="fas fa-sign-in"></i></span>
<span class="btn-inner--text">Login</span>
</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2686 次 |
| 最近记录: |