C# Razor页面授权在用户经过身份验证时不加载页面

C# Razor页面授权在用户经过身份验证时不加载页面,c#,.net,asp.net-mvc,authorization,razor-pages,C#,.net,Asp.net Mvc,Authorization,Razor Pages,我一直在尝试在我的Razor3.0 web应用程序中实现基本身份验证 我有一个用户正在通过SignInAsync()登录,但是当尝试重定向到需要授权的页面时,该页面不会加载。相反,登录页面将重新加载,URL将被更新,并附加“?ReturnUrl=%page%Path” Startup.cs 在这里,我将Admin文件夹设置为需要授权,并允许匿名用户访问登录页面 Login.cshtml.cs [BindProperty] 公共用户模型用户登录{get;set;} 公共异步任务OnPost() {

我一直在尝试在我的Razor3.0 web应用程序中实现基本身份验证

我有一个用户正在通过SignInAsync()登录,但是当尝试重定向到需要授权的页面时,该页面不会加载。相反,登录页面将重新加载,URL将被更新,并附加“?ReturnUrl=%page%Path”

Startup.cs

在这里,我将Admin文件夹设置为需要授权,并允许匿名用户访问登录页面

Login.cshtml.cs

[BindProperty]
公共用户模型用户登录{get;set;}
公共异步任务OnPost()
{
尝试
{
if(ModelState.IsValid)
{
var loginInfo=apiConnector.Get();
如果(登录信息)
{
等待此.signUser(UserLogin.Username,false);
返回此.RedirectToPage(“/Admin/FormOverview”);
}                    
}
}
捕获(例外e)
{
控制台。写入(e);
}      
返回此.Page();
}
专用异步任务签名用户(字符串用户名,bool isPersistant)
{
尝试
{
var索赔=新列表(){
新索赔(ClaimTypes.Name、用户名)
};
var claiminentities=新的索赔实体(索赔、CookieAuthenticationDefaults.AuthenticationScheme);
var claimPrincipal=新的ClaimsPrincipal(索赔实体);
var authProperties=新的AuthenticationProperties
{
AllowRefresh=true,
ispersist=true,
};
等待HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme、claimPrincipal、authProperties);
}
在这里,我设置了一个始终返回true的伪API,用户创建声明并登录

  • 我已尝试通过调试,可以看到User.Identity.IsAuthenticated已正确设置为true
  • 当我从管理文件夹中删除授权时,页面将正确重定向
  • 登录后正在注册对用户的声明
我是Razor的新手,因此我可能会错误地处理此问题,非常感谢您的帮助。

订购事宜

app.UseAuthentication();
app.UseAuthorization();
秩序问题

app.UseAuthentication();
app.UseAuthorization();
app.UseAuthentication();
app.UseAuthorization();