繁体   English   中英

在ASP.NET Core Identity UI中,登录链接无效

[英]link to login does not work, in ASP.NET Core Identity UI

我已将ASP.NET Core 2.2应用程序配置为基于ASP.NET Core项目中的Scaffold Identity的 scaffold身份(以便我可以自定义其外观) =>创建完整的身份UI源链接。 当我直接在浏览器中请求http:// localhost:12345 / identity / account / login URL时,它可以工作,但是当我将其作为主页上的链接显示时,它不起作用。 我究竟做错了什么?

Startup.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();
        }

_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>

有两种方法可以做到这一点。

方法1:使用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>

方法二:

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM