gpt4 book ai didi

asp.net - AuthenticationManager.SignIn() 未登录

转载 作者:行者123 更新时间:2023-12-02 15:36:21 25 4
gpt4 key购买 nike

我可以从数据库中获取有效用户,创建 ClaimsIdentity 并调用 SignIn 方法,不会出现错误。

public ActionResult SignInConformation(SignInModel model)
{
if (ModelState.IsValid)
{
var user = _userManager.Find(model.Username, model.Password);

if (user == null)
{
ModelState.AddModelError("", "Invalid username and\\or password");
}
else
{
_authenticationManager.SignOut();
var claimsIdentity = _userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
_authenticationManager.SignIn(new AuthenticationProperties { IsPersistent = true }, claimsIdentity);
return RedirectToAction("Index", "Home");
}
}

return View();
}

但是,当我检查用户是否在 View 上登录时,如下所示:

<p>
Current User: @if (User.Identity.IsAuthenticated)
{
@User.Identity.Name
}
else
{
@:Unknown
}
</p>

IsAuthenticated 返回 false

最佳答案

我缺少 OWIN 启动类中的 AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie:

var authenticationOptions = new CookieAuthenticationOptions
{
LoginPath = new PathString("/Account/SignIn"),
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie
};

appBuilder.UseCookieAuthentication(authenticationOptions);

遗憾的是没有一个好的、有用的错误。我不喜欢默默失败的程序。

关于asp.net - AuthenticationManager.SignIn() 未登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33330994/

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