我正在开发一个应用程序,它将支持我们组织中的几个部门,并希望定义用户所在的AD组可以访问哪些数据。
我的问题是,在每个决策点使用IsUserInRole()调用还是在用户登录时加载几个布尔值的Session[]变量并在我的代码中使用这些变量,在资源方面(带宽、时间片等)更具成本效益?
有什么想法?
发布于 2017-02-20 02:02:57
我会避免使用Sessions。它们使扩展应用程序变得更加困难,因为您需要一个集中的存储(数据库或Redis),而每次请求都会受到影响。它会减慢流程,因为您必须等待请求完成,然后才能继续执行实际的业务逻辑。
解决这个问题的方法是使用JWT令牌。它们对于少量的数据(比如有限的角色,而不是成百上千的角色)非常有效。JWT令牌可以安全地放在cookie中,这样每个浏览器请求都会将其传送到服务器。
你可以在这里获得更多关于JWT令牌的信息:https://jwt.io/introduction/。另一个StackOverflow问题有很多关于JWT令牌的信息:Using JWT to implement Authentication on Asp.net web API。
我希望它能解决你的问题。祝好运。
https://stackoverflow.com/questions/42330514
复制相似问题