每当我在VS 2019上运行我的应用程序时,它都会自动使用现有的名称和Id登录,而不会显示注册和登录页面。我应该如何处理它才能显示带有注册和登录按钮的主页?我附上我的启动,视图和控制器文件的SC。
--下面是查看文件--
@inject Microsoft.AspNetCore.Identity.SignInManager<AppointmentScheduler.Models.ApplicationUser> signInManager
@if (signInManager.IsSignedIn(User))
{
<form method="post" id="logoutForm" asp-action="Logout" asp-controller="Account">
<ul class="nav navbar text-white">
<li>
Hello, @User.Identity.Name!
</li>
<li class="offset-1">
<a href="javascript:docuement.getElementbyId('logoutForm').submit()"> LogOut </a>
</li>
</ul>
</form>
}
else
{
<ul class="nav navbar offset-1">
@*<li> @Html.ActionLink("SignUp", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li> @Html.ActionLink("SignIn", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>*@
<li class="nav nav-item">
<a class="nav-link text-white" id="registerLink" asp-action="Register" asp-controller="Account">Register</a>
</li>
<li class="nav-item">
<a class="nav nav-link text-white" id="loginLink" asp-action="Login" asp-controller="Account">SignIn</a>
</li>
</ul>
}发布于 2021-10-08 03:07:34
每当我在VS 2019上运行我的应用程序时,它都会自动使用现有的名称和Id登录,而不会显示注册和登录页面。
当用户登录时,它将在@if (signInManager.IsSignedIn(User)){}中显示内容,您可以尝试将注册和登录代码放在else之外,这样无论用户是否登录,都可以看到注册和登录按钮。
@inject Microsoft.AspNetCore.Identity.SignInManager<AppointmentScheduler.Models.ApplicationUser> signInManager
<ul class="nav navbar offset-1">
@*<li> @Html.ActionLink("SignUp", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li> @Html.ActionLink("SignIn", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>*@
<li class="nav nav-item">
<a class="nav-link text-white" id="registerLink" asp-action="Register" asp-controller="Account">Register</a>
</li>
<li class="nav-item">
<a class="nav nav-link text-white" id="loginLink" asp-action="Login" asp-controller="Account">SignIn</a>
</li>
</ul>
@if (signInManager.IsSignedIn(User))
{
<form method="post" id="logoutForm" asp-action="Logout" asp-controller="Account">
<ul class="nav navbar text-white">
<li>
Hello, @User.Identity.Name!
</li>
<li class="offset-1">
<a href="javascript:docuement.getElementbyId('logoutForm').submit()"> LogOut </a>
</li>
</ul>
</form>
}发布于 2021-10-09 21:53:47
您可以使用AllowAnonymous属性来允许未经身份验证的用户访问各个操作。例如:
[Authorize]
public class HomeController : Controller
{
[AllowAnonymous]
public ActionResult Index
{
}
public ActionResult Logout()
{
}
}这将只允许经过身份验证的用户访问homeController,索引操作除外,每个人都可以访问该操作,而不管他们的身份验证或未身份验证/匿名状态如何。
https://stackoverflow.com/questions/69467731
复制相似问题