问题标签 [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 回答
2954 浏览

c# - 如何在 blazor 页面上使用用户管理器?

你好社区我有一个问题如何usermanagerblazor页面 webassembly 中使用?通过注入这个:

我得到指示缺少使用指令,因为 ApplicationUser 类位于服务器上,并且客户端无权访问服务器。

这是我在 blazor 页面中的代码:

这是我的类ApplicationUser:

SQL 查询的图像

0 投票
2 回答
282 浏览

c# - DBContext更改后如何在控制器内创建新的UserManager对象

在控制器中使用新的 connectionString 进行更改后,我希望有一个刷新的 UserManager 对象DbContext,我已经在控制器中注入了该对象UserManager,但很明显,它将始终具有DbContext来自 DI 的最后一个引用,而不是新创建的dbcontext.

我已经尝试过如下。

它工作正常,但缺少大部分UserManager功能,比如 _userManager.CheckPasswordAsync(user, loginModel.Password)我将大部分参数作为 null 传递。我应该怎么做才能以最简单的方式完全UserManger使用 new DbContext

0 投票
1 回答
27 浏览

asp.net - 如何通过 ASP.NET Core 中的 api 控制器更新 IdentityUser 的自定义属性?

所以我正在研究一个 api 控制器,我有一个这样的更新方法:

通过 api 调用更新用户时,除了地址之外,用户都会得到更新。

这是地址:

和更新模型:

我已经完成了适当的迁移,并尝试在用户变量上设置断点。在调用 updateAsync 之前,该变量确实保存了一个地址。

用户的名字和姓氏都在 POST 请求中得到更新,但地址仍然为空。

有谁知道为什么会发生这种情况?

0 投票
1 回答
86 浏览

asynchronous - 如何在请求后使 IdentityDbContext 保持活动状态,以便服务可以使用 UserManager 完成其任务?

从一个页面我调用这样的服务:

我希望 Page() 返回并让用户/用户界面继续前进,同时该服务在后台使用 UserManager 添加许多用户。问题是一旦 Page() 返回并且请求完成,IdentityDbContext 就会关闭并且 UserManager 不再起作用。请求完成后如何保持 UserManager 工作?

该服务使用标准依赖注入:

如果我使用 await 而不是 discard 并强制服务在页面加载之前完成,它工作正常;但是,如果用户需要等待 2 分钟才能在页面加载之前导入数千个用户,这将是糟糕的 UX。我的问题是没有创建存储过程并复制 UserManager 正在做的事情,有没有办法在其中使用 UserManager不依赖于请求生命周期的服务?

我的想法是创建一个新的 UserManager 实例,而不是依赖依赖注入中的实例,但到目前为止我还无法让它工作。不确定语法是什么,也找不到在 .net core 3.1 中实际工作的示例

如何在请求后使 IdentityDbContext 保持活动状态,以便服务可以使用 UserManager 完成其任务?(.Net Core 3.1)

0 投票
0 回答
48 浏览

.net - 仅在使用断点进行调试时,用户管理器“在此上下文上启动了第二个操作”错误

这让我把头发拉出来。任何帮助将不胜感激。

我在 .NET 框架 4.6.1 中运行 MVC(我相信是 5)应用程序。我正在使用身份验证。大约一年前,我在我的旧电脑上创建了这个网站。在过去的一年里,我断断续续地研究它,从来没有遇到过这个问题。然后最近,我买了一台新笔记本电脑,从 GitHub 克隆了项目,突然间我遇到了这个奇怪的问题,在我调试和单步执行调用它的某个地方时,UserManager 会给我这个“第二次操作”错误,哪个在我的网站上有很多地方。它从来没有在我的旧机器上对我这样做过,所以我不知道是否需要更改设置,或者我是否偶然错过了旧机器上的一些代码,尽管这似乎不太可能。

我以默认方式设置了我的 UserManager,它将它创建为 OwinContext 的一部分。

正如你所看到的,这都是非常标准的,至少据我所知。自从 Visual Studio 创建它以来,我什至认为我从未对这段代码进行过任何重大修改。

当它被调用时,概念是我的父控制器有一个 AppUser 属性,这样我就可以获得关于当前用户的任何信息,我需要进行数据存储调用。为了得到这个 AppUser,我调用了 UserManager 和 FindByName。

然后我在下面的示例中调用该 AppUser:

上面的例子只是众多例子之一。这与这个特定实例无关。我可以选择网站中的任何地方,几乎。所以让我遇到这个“第二次操作”错误的原因之一是我什至没有调用异步版本的调用。可以说我应该,但我不是,但我仍然得到这个错误。因此,最重要的是,在使用 localhost 在调试模式下运行站点时,我没有收到此错误。我可以在网站上进行我需要的任何操作,而且我没有遇到任何问题。但是在随机的时候,如果我在调试时有一个断点并且我正在单步执行,我的操作会失败并且我会得到这个“第二次操作”异常,这在我的旧计算机上从未发生过一次。我可以停止实例并重新启动它,它会立即给我这个错误,就像它一样' 即使 IIS Express 没有在任务栏中运行,s 仍然保留旧实例。通常,我通过重新启动实例几次或休息 10 分钟然后重新启动来停止它。但可以肯定的是,如果我通过进行该调用的断点进行调试,错误就会回来。

有什么想法或愚蠢的帽子可以给我吗?

0 投票
0 回答
86 浏览

asp.net-core - 初始化用户管理器在类库项目中

我有一个 ASP.NET Core 5.0 MVC 应用程序和一个名为 .NET 5.0 的类库Application.Data。由于关注点分离,我决定DbContext应该将迁移和迁移包含在数据库中。DDL 迁移工作完美,但我在AspNetCore.Identity从数据库中播种用户时遇到问题。

简单地说,我想访问一个UserManager<MyUser>实例以调用CreateAsync/AddToRoleAsync方法,但UserManager构造函数需要八个参数,然后也需要实例化。我的理解是,我可以使用该AddIdentity方法将用户管理器注入到我的 MVC 项目的服务集合中,但由于我DbContext包含在 中Application.Data,我将无法从 MVC 项目中运行迁移命令。

这里最好的做法是什么?

0 投票
1 回答
68 浏览

authentication - 在 ASP.NET Core 中使用基于本地存储的 JWT-Token 更改用户密码(ASP.Identity)

美好的一天,我是一名 C# 开发人员,正在尝试使用 ASP.NET Core 迈出第一步。

现在我正处于需要一些外部帮助的地步。我开发了一个基于 Blazor 的网站并将一些用户添加到我的数据库中。现在我想为登录用户添加一个更改密码的功能。我的项目分为服务器端和客户端。客户端包含我所有的 blazor/razor 页面,包括 ChangePasswordView,服务器端接收来自客户端的 REST 请求。

对于授权,我正在使用 JWT(JSON WebToken),并且我将此令牌与一些声明添加到浏览器中的本地存储中。

程序如下:

  1. 用户已登录
  2. 用户输入旧密码和新密码并点击提交按钮
  3. 请求功能从客户端到服务器端
  4. ChangePassword(ChangePasswordModel pwModel)POST 请求到达包含“ ”方法的服务器端 UserController 类。它成功接收到带有旧密码和新密码的 pwModel。
  5. ....现在我遇到了一些问题....我想我必须从本地 browserstorage 或类似的东西验证 JWTtoken,因为它_userManager.GetUserAsync(User)总是返回 null。

如何帮助我解决此问题以获得功能齐全的“changePassword”方法以及您需要哪些信息?

最好的问候,拉里

ps 抱歉,这是我在 Stackoverflow 上的第一个问题,我试图尽可能地描述这个问题。

0 投票
1 回答
408 浏览

c# - ASP.NET Core Identity userManager.AddToRoleAsync() - 按 id 添加

我有一个自定义用户角色类CompanyId作为外键。所以我可以创建与公司相关的用户角色。这意味着管理员角色或任何其他角色本身可以在多个公司中。我不能与公司和角色建立多对多关系,因为管理员对一家公司的要求可能因另一家公司而异。所以我在用户角色实体中添加了公司 ID。

我的问题是,用户管理器将角色名称作为参数AddToRoleAsync(),我不能使用它,因为角色名称可能是多余的。如果我能够通过 ID 添加用户角色,那就太好了。是否有解决方法来实现这一目标?

我目前的解决方法是将公司名称添加为角色名称的前缀。喜欢:ABC - 管理员;XYZ - 管理员。我不太喜欢这个,用户也不会。

如果我可以为两者创建一个重载方法AddToRoleAsync()IsInRoleAync()通过其 ID 而不是名称来查找角色,那就太好了。

0 投票
0 回答
61 浏览

asp.net-core - ASP.NET Core 3.1,InvalidOperationException 在使用注入到作用域服务中的用户管理器时,然后注入到 SignalR 集线器

我有一个服务 WhoKnows<THub> 在 Startup.cs 中注册为

该服务通过 UserManager 注入,如下所示:

然后在一个方法中调用它:

然后将服务作为依赖项注入 SignalR Hub

但是,当 _userManager.FindByIdAsync(UserId) 被调用时,它会抛出一个

System.InvalidOperationException:无效操作。连接已关闭。

我想这与 UserManager 的作用域生命周期有关?

如何使用 Injected UserManager?

0 投票
1 回答
138 浏览

android - Android:检查当前用户是否是客人

我通读了 UserManager 和 UserHandle 文档,找不到任何可以返回布尔值回答问题的方法。任何人都知道如何确定这一点?