roles - 无法在 Blazor 服务器端使用 RoleManager 创建角色
问题描述
我有一些代码使用从 MVC 项目中复制的 RoleManager 来在 Blazor 项目中创建角色。它可以编译,但是当我单步执行代码时,它会到达该行,然后似乎抛出异常,因为它永远不会进入下一行。我无法捕捉到异常。
由于我的代码不起作用,我在网络上找到了代码并且它的行为相同,所以我改变了它的注入方式,我得到了一个不同的错误,所以我找到了第三种方法,这也达到了测试是否有角色已经存在并爆炸。
这是最新的尝试
[Inject]
IServiceProvider services {get;set;}
public async Task Initialize()
{
using (var roleManager = services.GetRequiredService<RoleManager<IdentityRole>>())
{
string proRole = "Pro";
if (!await roleManager.RoleExistsAsync(proRole))
{
var temp = await roleManager.CreateAsync(new IdentityRole { Name = proRole });
}
}
}
它在等待的 if 语句上爆炸了。
这是以前的代码应该可以正常工作。
string proRole = "Pro";
string proClientRole = "ProClient";
if (!await _roleManager.RoleExistsAsync(proRole))
{
var temp = await _roleManager.CreateAsync(new IdentityRole { Name = proRole });
}
这是一个方法的内部。
我还在 Razor 文件中将它作为 @{code 使用,经过一个小时的尝试不同的东西后,我将它移到了一个基类,因为它们在过去更稳定。
这不是数据库连接,因为这是经过充分验证的,还因为 UserManager 在同一个类中被调用并且它可以工作
我还尝试了这段代码(Blazor Role Management Add Role trough UI (Crud))这两个建议。
对我来说,这对 Blazor 来说是一件坏事,它是越野车,我永远不知道这是我的坏事,还是最新最伟大的东西出了问题。但我假设在这种情况下这是我的坏事。
无论如何,任何帮助将不胜感激,我在这方面的时间太多了,
解决方案
我将相同的代码复制/粘贴到“/”页面,它在那里工作。由于某种原因,它在加载到组件中的组件中不起作用,但标准角色代码在“/”页面中按预期工作。很可能我应该重新启动计算机,因为它现在也可以在原始位置工作。
推荐阅读
- google-apps-script - 添加一个按钮以从 google 应用程序脚本自动下载 google sheet 到 excel
- dax - 如何交叉连接从 Generateseries 创建的 Dax 中的两个表?
- apache-kafka - 在分区 kafka 中获取最后提交的消息
- amazon-web-services - 我们能否对 AWS 组织中的成员账户强制执行最大使用限制或最大成本 ($)?
- c# - Java Web 服务响应中的 WCF 服务引用接口和过多的命名空间
- docker - kubernetes Clusterip+port 在某些情况下无法访问
- gzip - 在 gnu 并行运行时如何 gzip tee 输出?
- sql - 获取未显示或未回答的问题列表
- go - Golang 百万分之一的概率
- kubernetes - 在项目级别安装 Istio