gpt4 book ai didi

asp.net-mvc - 从 _Layout.cshtml 重定向到另一个页面

转载 作者:行者123 更新时间:2023-12-05 01:17:05 24 4
gpt4 key购买 nike

如何在 asp.net core razor 中重定向到 _layout.cshtm 页面中的另一个页面。

我正在验证并且用户已经登录,如果没有,它将被重定向到另一个页面。

@using Microsoft.AspNetCore.Identity
@using CronoParque.Model
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager

@if (SignInManager.IsSignedIn(User))
{
<form asp-controller="Account" asp-action="Logout" method="post" id="logoutForm" class="navbar-right">
<ul class="nav navbar-nav navbar-right">
<li>
<a asp-page="/Account/Manage/Index" title="Manage">Ola @UserManager.GetUserName(User)!</a>
</li>
<li>
<button type="submit" class="btn btn-link navbar-btn navbar-link">Sair</button>
</li>
</ul>
</form>
}
else
{
// targeting here
}

最佳答案

回答

@if (SignInManager.IsSignedIn(User))
{
// normal stuff
}
else if (!Context.Request.Path.ToString().Contains("/About"))
{
// If we aren't processing a request for the target page,
// then redirect to it.
Context.Response.Redirect("/About");
}

也许是更好的答案

您的问题的用例可能是将未经授权的请求重定向到登录页面。在这种情况下,请使用内置的 razor 页面授权 API。

services
.AddMvc()
.AddRazorPagesOptions(options => {
options.Conventions.AuthorizePage("/Contact");
});

以上代码进入Startup > ConfigureServices 方法。

在上面的示例中,API 重定向了对 /Contact 的未授权请求。

另请参阅:https://learn.microsoft.com/en-us/aspnet/core/security/authorization/razor-pages-authorization?view=aspnetcore-2.1#require-authorization-to-access-a-page

关于asp.net-mvc - 从 _Layout.cshtml 重定向到另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51410114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com