gpt4 book ai didi

asp.net - HttpContext 不包含 SignOutAsync 的定义

转载 作者:行者123 更新时间:2023-12-01 18:43:44 25 4
gpt4 key购买 nike

我正在尝试编写一个自定义身份验证管理器,它将处理用户登录和注销以及我的 ASP .Net Core 2.x 应用程序中的许多其他内容,但我一开始就陷入困境。

我已经尝试了this Microsoft Article中建议的方法但是当我尝试实现登录时,它显示 HttpContext 不包含 SignOutAsync 的定义错误。我有文章中建议的所有引用资料:

public async void SignIn(HttpContext httpContext, UserDbModel user, bool isPersistent = false)
{
ClaimsIdentity identity = new ClaimsIdentity(this.GetUserClaims(user), CookieAuthenticationDefaults.AuthenticationScheme);
ClaimsPrincipal principal = new ClaimsPrincipal(identity);
await HttpContext.SignInAsync(IdentityConstants.ApplicationScheme);
}

下面的代码可以工作,但已过时:

await HttpContext.Authentication.SignOutAsync(...)

类里面的引用文献:

using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Authentication;

这里缺少什么?也许这些扩展方法在新版本中被删除,如果是这样......我如何以正确的方式实现身份验证?

最佳答案

HttpContext 应该是对 Controller 中字段的引用,并且您没有引用 HttpContext 类型。如果情况并非如此,那么这就是问题的原因,请更改代码以使用字段/变量而不是类型。

因此,如果字段名称是 httpContext ,则使用它,因为调用扩展方法是通过引用实例上的方法而不是类型来完成的,因为实例也作为第一个参数传入扩展方法。

await httpContext.SignInAsync(IdentityConstants.ApplicationScheme);

关于asp.net - HttpContext 不包含 SignOutAsync 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012752/

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