【发布时间】:2017-07-08 21:40:29
【问题描述】:
我正在开发一个应用程序,它将支持我们组织中的多个部门,并且想要定义用户所在的 AD 组可以访问哪些数据。
我的问题是,在每个决策点使用 IsUserInRole() 调用或在用户登录时加载几个 Session[] 布尔变量并使用这些变量是否更具成本效益(带宽、时间片等)?贯穿我的代码?
想法?
【问题讨论】:
标签: c# .net user-roles
我正在开发一个应用程序,它将支持我们组织中的多个部门,并且想要定义用户所在的 AD 组可以访问哪些数据。
我的问题是,在每个决策点使用 IsUserInRole() 调用或在用户登录时加载几个 Session[] 布尔变量并使用这些变量是否更具成本效益(带宽、时间片等)?贯穿我的代码?
想法?
【问题讨论】:
标签: c# .net user-roles
我会避免会话。它们使扩展应用程序变得更加困难,因为您需要一个集中式存储(数据库或 Redis),而每个请求都会受到打击。它会减慢流程,因为您必须等待请求完成才能继续执行实际的业务逻辑。
答案是使用 JWT 令牌。它们适用于少量数据(例如有限数量的角色,而不是数百个角色)。 JWT 令牌可以安全地放入 cookie 中,以便每个浏览器请求都将其传送到服务器。
您可以在此处获得有关 JWT 令牌的更多信息:https://jwt.io/introduction/。另一个 StackOverflow 问题有很多关于 JWT 令牌的信息:Using JWT to implement Authentication on Asp.net web API。
希望它能解决您的问题。祝你好运。
【讨论】: