问题标签 [usermanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5530 浏览

asp.net - 将自定义 UserManager 注入 Controller Net Core 2.1

我在尝试将我的 UserManager 注入我的控制器时遇到问题。

这是我的自定义 UserManager:

这是我的 Startup.cs

其中两个重要的行是:
builder.RegisterType ApplicationUserManager ().As UserManager ApplicationUser ().SingleInstance();
builder.RegisterType ApplicationUserManager ().As ApplicationUserManager ().SingleInstance;



我的控制器:(我用这 2 个构造函数对其进行了测试,得到了同样的错误)

最后是错误:

Autofac.Core.DependencyResolutionException:无法使用可用的服务和参数调用类型为“VotNetMon.ApplicationUserManager”的“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”的构造函数:无法解析参数“Microsoft.AspNetCore.Identity”。 IUserStore 1[VotNetMon.Entities.ApplicationUser] store' of constructor 'Void .ctor(Microsoft.AspNetCore.Identity.IUserStore1[VotNetMon.Entities.ApplicationUser]、Microsoft.Extensions.Options.IOptions 1[Microsoft.AspNetCore.Identity.IdentityOptions], Microsoft.AspNetCore.Identity.IPasswordHasher1[VotNetMon.Entities.ApplicationUser]、System.Collections.Generic.IEnumerable 1[Microsoft.AspNetCore.Identity.IUserValidator1[VotNetMon.Entities.ApplicationUser]]、System.Collections.Generic.IEnumerable 1[Microsoft.AspNetCore.Identity.IPasswordValidator1[VotNetMon.Entities.ApplicationUser]]、Microsoft.AspNetCore.Identity.ILookupNormalizer、Microsoft.AspNetCore.Identity.IdentityErrorDescriber、System.IServiceProvider、Microsoft.Extensions.Logging.ILogger1[Microsoft.AspNetCore.Identity.UserManager1[VotNetMon.Entities.ApplicationUser]])'。在 Autofac.Core.Activators.Reflection.ReflectionActivator.GetValidConstructorBindings(IComponentContext 上下文,IEnumerable 1 parameters) at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable1 参数)在 Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 参数)

提前致谢

0 投票
1 回答
812 浏览

php - 管理允许在 Woocommerce 中购买的客户

我们有 eshop 的批发网站。我们需要阻止新客户购买任何东西,直到我们验证他(因为运输限制等等)。是否有可能(通过为他设置一些不同的角色或阻止客户角色购买)?

顺便说一句,我发现了这一点,但我更喜欢改变用户,而不是产品,因为我们想要所有产品的锁。在插入新产品时,有人可能会忘记设置正确的产品类别。 将woocommerce产品限制为特定客户购买

0 投票
2 回答
7314 浏览

asp.net-core - ASP.NET Core 2.2 创建 IdentityUser

全新的 ASP.Net Core。必须使用 Identity 创建一个 asp.net core 2.2 项目(并让用户播种)。

我找不到任何有关如何准确执行此操作的文档。

我能够找到创建身份角色的代码(无论如何编译,还没有到我可以运行它的地方:

现在,我需要创建一些用户。但是我找不到奇怪的微软语法来做到这一点(谷歌搜索了 2 天)。

这是不起作用的:

我看到的错误是:

Argument1:无法从“Microsoft.AspNetCore.Identity.IdentityUser”转换为“ApplicationDbContext”

这是什么意思?显然,我没有合适的 userManager。但是,如何获得正确的参数,将用户作为第一个参数,将字符串(密码)作为第二个参数?

此外,Google 搜索中出现的示例有一个ApplicationUser我没有(也不需要?)的对象。示例中未定义我如何获得它。

欧文

好的。过去的语法错误,但现在我遇到了运行时错误:

NullReferenceException:对象引用未设置为对象的实例。在调用 CreateAsync 时。这是新代码:

将研究创建 userManager 的其他参数是什么以及如何从 serviceProvider 获取它们?

——欧文

想出了如何去做。关键是找到要传入的正确服务提供者以及创建 userManager 的正确语法。我通过谷歌找到的其他答案都IdentityUser他们自己ApplicationUser的把水弄混了。这是工作功能(希望这对某人有所帮助):

0 投票
1 回答
146 浏览

android - 多用户设备中的 Android ContentProvider 和服务

多用户Android 设备中,当我们切换到其他次要用户(使用 Ui 或以编程方式)时,Android 是否会保持任何主要用户组件处于活动状态,例如启动ContentProviders或后台服务

0 投票
1 回答
783 浏览

c# - 用户管理器有缓存吗?

我有一个使用 Microsoft.AspNetCore.Identity.UserManager 来管理用户的应用程序。我使用核心 2.2。UserManager 是通过我的服务中的内置依赖注入(不是我)注入的。像这样:

当我第一次尝试通过 Id (FindByIdAsync) 获取用户时,我在控制台中看到对 db 的请求。具有相同 ID 的下一个请求我没有看到对 db 的任何请求,但应用程序工作并获得了用户。

在 Startup.cs 我没有 userManager 的配置。我只是使用扩展方法:

问题:也许有一种方法可以在 UserManager 中配置此缓存功能?指出从哪里获取有关此缓存保留多长时间的信息。

0 投票
1 回答
91 浏览

c# - Azure 上的 AspNetIdentity 登录失败 - 初始化字符串的格式不符合从索引 0 开始的规范

免责声明:即使以前在很多主题中都提出过这个错误,我也没有找到我的问题的答案;请在标记为重复之前随时回答它,因为它不是重复的:-)


我在 ASP.NET MVC5 数据库的第一个项目中使用Identity Framework 。

我最近对我的解决方案进行了很多更改,包括在表格中添加一列AspNetUsers。我已经这样做了十几次,一切正常。

当我使用 localhost 中的所有新更改测试我的解决方案时,一切正常,包括 login

然后,我在 Azure 上托管的 PreProd 环境中发布了我的代码和数据库更改(作为记录)

新的更改没问题,但是,当我尝试登录我的项目时,它失败了,并且我的日志中有以下错误:

初始化字符串的格式不符合从索引 0 开始的规范。

问题发生在LoginHttpPost 方法中,仅在调用时UserManager

在 localhost 中一切都很好,在 preprod(托管在 Azure 中)中,它在调用时失败UserManager.FindByEmailAsync

这是我在本地主机中的 ConnectionString

这是我用于 Azure Preprod 的 ConnectionString

当我在发布模式下使用 VisualStudio 中的 PreProd 连接字符串时,完全没有问题,我可以登录(?!?!) 所以看起来问题出在 PreProd 环境本身,不是吗?

到目前为止我已经尝试过:

  • 直接在我的 FTP 中复制/粘贴 web.config 中的连接字符串
  • 尝试更改"by'
  • 尝试删除连接字符串中的所有内容,除了必需的元素(用户 ID、密码..)
  • 谷歌我的问题,点击第一页上的每个链接,但仍然有我的问题
  • 随机更改Integrated Security连接字符串中的其他布尔值
  • 在我的椅子上转 7 次,同时低声念咒语

谁能告诉我:

  • 为什么它在 Azure 上托管时仅在 PreProd 中失败
  • 我该如何纠正它?

太感谢了

0 投票
0 回答
1481 浏览

authentication - 如何在 ASP.Net Core 2 中通过电子邮件实现两因素身份验证?

我正在将 ASP.NET Core 2.2 用于 Web 服务器,每次用户登录网站时,在输入正确的电子邮件和密码后,我需要向用户电子邮件发送包含4 位 PIN 码的消息,以使用它作为电子邮件两因素身份验证,并且此 PIN 码应在发送后 10 分钟后过期。

我可以手动执行此操作(生成随机 PIN 码,将它们保存在数据库中,使用 if 语句验证它们等...),这会起作用,但我创建了这个问题来询问如何使用可用的 ASP.NET Core 2 来执行此操作功能(可以为我节省数据库表)。

我尝试了UserManager.GenerateTwoFactorTokenAsync(TUser, String) Method来生成令牌并将其发送到电子邮件:

并使用UserManager.VerifyTwoFactorTokenAsync(TUser, String, String)来验证它:

这非常有效,但我的问题是生成的令牌不是 4 位 PIN 码,并且它的到期时间不是 10 分钟(我认为默认值为 1 天)。

所以,我的问题是:如何在 ASP.NET Core 2.2 中自定义 UserManager 生成的令牌以进行两因素身份验证?

这可以通过创建自定义令牌提供程序来完成吗?(我在这里使用默认令牌提供程序)如果是这样,这样做的步骤是什么?我花了几个小时浏览 Docs 和 ASP.NET Core 2 文章,但没有找到我需要的东西。

PS:如果有除了 UserManager 之外的任何其他方式,我都在听,但我认为这可能是最好的方式,尤其是 UserManager 在我们系统中的任何地方都使用(用于登录,密码重置等......)。

0 投票
0 回答
73 浏览

android - 如何从系统服务中获取方法?

需要方法以下方法

来自 UserManager 类的 userCreate(string, int) createGuest(string, int)

我已经为该类创建了实例,但它不起作用

UserManager userManager = (UserManager) getApplicationContext().getSystemService(Context.USER_SERVICE);

给我建议?

0 投票
1 回答
193 浏览

asp.net - 调用 GenerateChangePhoneNumberTokenAsync() 后身份电子邮件验证不起作用

我最近在使用 asp.net 身份验证电子邮件时收到错误“无效令牌”。

我有详细的流程如下:

每当用户注册时,系统都会发送一封电子邮件以验证帐户。

注册完成后,用户无需验证邮箱即可添加手机号,系统将验证码发送至手机号。

问题是如果用户首先验证电话号码然后确认显示“令牌无效”错误的电子邮件,如果用户首先验证电子邮件然后“电话号码代码无效”。

你能帮我解决这个问题吗?

提前致谢!

0 投票
0 回答
205 浏览

asp.net-identity - 如何实现 UserStore.GetClaimsAsync 方法

我有一个实现 IUserClaimStore 的自定义用户存储。这样,我需要实现 GetClaimsAsync 方法,但我被困在这里。

这是我目前的实现:

这是无效的,因为 List 没有实现 IList。所以问题是,我该怎么做?

谢谢

海梅