gpt4 book ai didi

c# - asp.net身份登录添加方法

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:26 28 4
gpt4 key购买 nike

使用 asp.net identity,我在 IdentityUser 表中添加了一个名为 isActive 的列,它会检查用户是否应该能够登录。我在登录 Controller 中添加了:

if (!await UserManager.IsUserActiveAsync(user.UserId))
{
return View("AccountDisabled");
}

我还在 UserStore 类中添加了以下方法:

public Task<TUser> IsUserActiveAsync(Guid userId)
{
using (var connection = new SqlConnection(_connection))
{
var param = new DynamicParameters();
param.Add("@UserId", userId);
var result = connection.Query<TUser>("IdentityCheckUserIsActive", param, commandType: CommandType.StoredProcedure).SingleOrDefault();

return Task.FromResult(result);
}
}

但我收到以下错误:'IdentityUserManager' 不包含 'IsUserActiveAsync' 的定义,并且找不到接受类型为 'IdentityUserManager' 的第一个参数的扩展方法 'IsUserActiveAsync'(您是否缺少using 指令还是程序集引用?)

我不知道那是什么意思?

最佳答案

看起来您正在尝试访问 UserManager 的方法,但没有它的实例,因此您可以像这样创建它的实例:

UserManager userManager = new UserManager(/*Params here if needed*/);

那么你只需调用:

if (!await userManager.IsUserActiveAsync(user.UserId))
{
return View("AccountDisabled");
}

但是,如果您希望能够在不实例化对象的情况下从类中调用方法,则需要将方法标记为静态,即

public static Task<TUser> IsUserActiveAsync(Guid userId)

关于c# - asp.net身份登录添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40511308/

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