我在我的Blazor WASM项目中使用了IdentityServer4和EF Core,该项目中我使用了多个数据库。(动态字符串连接-数据库重复(
在登录页面中,您可以选择要使用的数据库,我会将数据库名称存储在cookie中
当您使用一个数据库登录时,系统应该像这样工作,而不能使用其他数据库
除了我可以更改cookie中的数据库名称,然后使用其他数据库之外,其他一切都很好
我的问题是,如何修改IdentityServer4 authroize,使您在使用一个数据库登录时无法访问另一个数据库(如果您在cookie中更改了数据库名称,则在发送http请求时返回403错误代码(-取决于数据库
我想如果令牌存储在AspNetUserTokens表中,也许我可以检查每个请求,但我注意到即使在成功登录后,该表也是空的。
听起来当前数据库值应该设置为用户身份的声明,而不是在原始cookie中。向身份添加自定义声明将在加密令牌中保护它们。
这里有一些关于这个场景的文档,特别是关于实现添加索赔的IProfileService的文档。