首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有登录用户的情况下运行只有主页的应用程序?

问如何在没有登录用户的情况下运行只有主页的应用程序?
EN

Stack Overflow用户
提问于 2021-10-06 14:34:21
回答 2查看 46关注 0票数 0

每当我在VS 2019上运行我的应用程序时,它都会自动使用现有的名称和Id登录,而不会显示注册和登录页面。我应该如何处理它才能显示带有注册和登录按钮的主页?我附上我的启动,视图和控制器文件的SC。

This is my startup.cs file

--下面是查看文件--

代码语言:javascript
复制
@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>
}
EN

回答 2

Stack Overflow用户

发布于 2021-10-08 03:07:34

每当我在VS 2019上运行我的应用程序时,它都会自动使用现有的名称和Id登录,而不会显示注册和登录页面。

当用户登录时,它将在@if (signInManager.IsSignedIn(User)){}中显示内容,您可以尝试将注册和登录代码放在else之外,这样无论用户是否登录,都可以看到注册和登录按钮。

代码语言:javascript
复制
@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>
   

}
票数 0
EN

Stack Overflow用户

发布于 2021-10-09 21:53:47

您可以使用AllowAnonymous属性来允许未经身份验证的用户访问各个操作。例如:

代码语言:javascript
复制
 [Authorize]
 public class HomeController : Controller
{
       [AllowAnonymous]
       public ActionResult Index
      {
       }

      public ActionResult Logout()
     {
      }
 }

这将只允许经过身份验证的用户访问homeController,索引操作除外,每个人都可以访问该操作,而不管他们的身份验证或未身份验证/匿名状态如何。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69467731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档