【问题标题】:Does the ASP.NET-Core application hit the database anytime it requires access to claims?ASP.NET-Core 应用程序是否会在需要访问声明的任何时候访问数据库?
【发布时间】:2020-01-05 15:41:08
【问题描述】:

我即将决定是否对我的应用程序中需要频繁访问但我担心性能的某些项目使用声明或会话。

这就是为什么我想知道应用程序是否总是会查询数据库以获取给定角色的声明或登录用户在应用程序中需要时,或者是否有 ASP.NET-Core 应用程序的方法以一种不需要始终查询数据库来检索当前登录角色或用户的声明的方式存储声明。

为了提高性能,我宁愿将项目存储在会话中,这让我处于两难境地。如果是这种情况,使用 session 而不是声明来存储只要用户登录到应用程序就需要的项目是否有缺点?

请指导

【问题讨论】:

    标签: c# asp.net-core-mvc ef-core-2.2 role-based-access-control


    【解决方案1】:

    “声明是用户数据,它们由受信任的来源发布。如果我们使用基于令牌的身份验证,则生成令牌的服务器可能会在令牌中添加声明。声明可以有任何类型“DateOfJoining”、“DateOfBirth”、“email”等数据。基于用户拥有的声明,系统提供对页面的访问,称为基于声明的授权。所以使用声明并不代表访问数据库的任何额外工作。

    【讨论】:

    • 所以,如果我有其他属性,我从数据库中获取,例如姓氏、性别等,并将它们添加到用户成功登录的用户声明中。根据您的说法,当我稍后需要在应用程序中访问这些属性时,应用程序不会再次访问数据库来获取这些属性的值,因为它们已经存储在声明令牌中。对吗?
    • 是的!那是正确的!为了帮助您解决疑问,请查看此链接。dev.to/rickab10/…c-sharpcorner.com/article/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2021-01-06
    • 2017-10-13
    • 1970-01-01
    相关资源
    最近更新 更多