我正在使用 ASP.Net Core MVC 3.1 開發應用程式,但我遇到了無法登錄的問題。本地主機回應 401 未經授權
帳戶控制器
[HttpPost]
public async Task<IActionResult> Login(PixClient client)
{
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Email, client.Email));
var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var principal = new ClaimsPrincipal(identity);
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(principal));
return RedirectToAction("Index", "Home");
}
啟動.cs
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>
{
options.LoginPath = "/account/login";
options.Cookie.Name = "sessionid";
});
索引.cs
[Authorize]
public IActionResult Index()
{ ...
uj5u.com熱心網友回復:
我檢查了你顯示的代碼,沒有錯誤。確保您已添加 Authentication 中間件并且它的順序正確:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
.......
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
......
}
您可以創建一個中間件來檢查是否已生成勾選并成功添加到 cookie:
app.Use(async (context, next) =>
{
var cookies = context.Request.Cookies;
await next.Invoke();
});
我嘗試如下:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie( m =>
{
m.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Home/Login");
m.Cookie.Name = "CookieAuth";
});
重定向到 時/Home/Login,您可以看到名為 的 cookie CookieAuth:

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/520443.html
