未登录的.NET Core身份作为UI显示登录页面

时间:2019-12-06 00:53:26

标签: asp.net-core asp.net-core-3.0

我使用Identity作为UI来生成我的登录页面,

我的index.cshtml看起来像这样:

@page
@model IndexModel
@{
  ViewData["Title"] = "Home page";
}
@inject SignInManager<IdentityUser> SignInManager
@if (SignInManager.IsSignedIn(User)) {
 ... my html ...
}

当用户未登录时,这会在右上方显示一个“登录”按钮,该按钮重定向到登录页面,我看到该按钮具有

<a class="nav-link text-dark" href="/VoyDashIdentity/Account/Login">Login</a>

我希望索引页面显示登录页面(或嵌入登录页面),如果用户无需单击登录按钮即可登录,我尝试过:

@if (SignInManager.IsSignedIn(User)) {
 ... my html ...
} else {
  Response.Redirect("VoyDash/Identity/Account/Login");
}

但这无法正确重定向到该区域,所有相对链接(即bootstrap.css的链接)均无法正常工作。

实现此目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

默认情况下,它将在脚手架后将用户重定向到新的登录页面。但是您始终可以使用以下方式更改路径:

$("input").removeAttr('disabled');

请确保上面的配置位于services.PostConfigure<CookieAuthenticationOptions>(IdentityConstants.ApplicationScheme, opt => { //configure your other properties opt.LoginPath = "/Login"; }); 下,否则AddDefaultIdentity将覆盖该配置。