【问题标题】:Modify identityserver4 authorize修改identityserver4授权
【发布时间】:2020-11-29 13:18:24
【问题描述】:

我在带有 ASP.NET Core 托管选项的 Blazor WASM 项目中使用 IdentityServer4 和 EF Core,并且在该项目中我使用多个数据库。(动态字符串连接 - 数据库副本)
在登录页面中,您选择要使用的数据库,我将数据库名称存储在 cookie 中。
当您使用一个数据库登录时,系统应该像这样工作,您不能使用其他数据库。
除了我可以更改 cookie 中的数据库名称然后使用其他数据库之外,一切都运行良好。
我的问题是如何修改 IdentityServer4 授权,这样当您使用一个数据库登录时,您将无法访问另一个数据库(如果您在 cookie 中更改了数据库名称,则在发送 http 请求时返回 403 错误代码) - 取决于数据库。

我想如果令牌存储在 AspNetUserTokens 表中,也许我可以检查每个请求,但我注意到即使成功登录,该表也是空的。

【问题讨论】:

    标签: asp.net-core entity-framework-core asp.net-core-webapi identityserver4 blazor


    【解决方案1】:

    听起来当前数据库值应该设置为对用户身份的声明,而不是在原始 cookie 中。向身份添加自定义声明将在加密令牌中保护它们。

    这里是 some documentation 围绕这个场景,特别是看看实现一个添加你的声明的 IProfileService。

    【讨论】:

    • 我试过了,但没有用,所以我所做的就是在 AspNetUsers 表中添加一个新列并存储数据库标识符
    猜你喜欢
    • 2017-10-10
    • 2017-02-04
    • 2020-10-28
    • 1970-01-01
    • 2017-07-05
    • 2017-04-12
    • 2017-04-05
    • 2018-09-29
    • 2020-12-31
    相关资源
    最近更新 更多