当前位置: 首页 > 知识库问答 >
问题:

不同用户角色的不同DBContext

公西运良
2023-03-14

所以С能否请您向我解释一下,正确的方法是否是为不同类型的用户提供不同的DBContext。

例如:我们有两种方法的ApicController:

[HttpGet, Route("admin"), Authorize(RoleType.Admin)]
public Task<...> Get(... adminRequest)
{
    var query = mapper<AdminGetCommand>(adminRequest);
    return mediatr.Send(query);
}

[HttpGet, Route(""), Authorize(RoleType.User)]
public Task<...> Get(... userRequest)
{
    var query = mapper<UserGetCommand>(userRequest);
    return mediatr.Send(query);
}

之后,每个命令都依赖于具有不同配置的不同服务/DbContext。例如:

//filter for users
...
protected override void OnModelCreating(ModelBuilder builder)
{
    base.OnModelCreating(builder);

    builder.ApplyGlobalFilters<IDeletedUtcDateTime>(e => !e.DeletedUtcDateTime.HasValue);

}
...

//filter for admin 
...
protected override void OnModelCreating(ModelBuilder builder)
{
    ...
    base.OnModelCreating(builder);
    ...
}
...

我觉得我错过了什么或者有更好的解决办法

共有1个答案

邢飞白
2023-03-14

首先,我的问题是“为什么你需要多种上下文,而一种上下文就足够了?“看来你是在没有必要的地方引入复杂性。

 类似资料:
  • 是否可以将具有不同用户角色的用户重定向到laravel 5.1中的不同页面? 我研究了Auth中间件和Auth控制器,但没有发现任何处理登录请求本身的东西。 我发现了一些关于登录重定向在这里Laravel重定向回到原来的目的地后登录,但我不知道在哪里把建议的代码片段。 有人能帮我吗

  • 问题内容: 假设我是普通用户还是超级用户,我想显示不同的列。 覆盖在已经完全没有效果 并且定义条件类属性也不起作用(未定义)(根据上的错误)。在等效的中做同样的事情,仍然没有定义 仅供参考,可以是从前面提到的问题继承的任何类。 问题答案: 我通常定义视图类属性,例如属性。它允许你向其中添加一些动态逻辑: 使用这种方法的问题(以及为什么在函数中重新分配值不起作用)是许多视图属性在应用程序启动时被缓存

  • 我在Grails应用程序中集成了Spring security核心插件。

  • 在我的Spring Boot应用程序中,我有一个REST控制器,其方法如下: 只有具有权限\u UPDATE\u OWN\u COMMENT或权限\u UPDATE\u ANY\u COMMENT的用户才能使用此endpoint。 在这个方法中,我需要创建两个不同的流-一个用于具有的用户,另一个用于具有权限的用户。 所以我的问题是——为了在单个方法中实现这些不同的逻辑流,Spring Securi

  • 5.3 不同的颜色 CGDB支持一些颜色,取决于您的终端支持多少种颜色。下表是一个CGDB所提供的颜色的表格。标题为NR-16的列表示终端至少支持16种颜色。标题为NR-8的列表示终端至少支持8种颜色。每种颜色对应的整数数值表示了被传入curse函数init_pair()的数值,该函数用来使curse创建一种新的颜色。 COLOR NAME NR-16 NR-8 NR-8 bold attribu

  • 我正在努力让Spring Boot应用程序启动并运行安全功能。我很难让它运行,因为我还提出了其他问题。然而,这个问题有点在功能方面。我有多种角色,如管理员和客户,登录后我想把他们发送到各自的在线页面。我想出的一个办法是创建一个登录页,然后使用cookies重定向它们,尽管我不知道如何做到这一点。如果我的方法是正确的,或者Spring Boot提供了默认功能,请提供一些例子,请告诉我。 这是我的Se