我目前正在开发一个 ASP.NET MVC4 网站,我想知道存储登录用户数据(包括权限)并安全地授权用户的最佳实践是什么,能够在我的视图和控制器中访问这些数据.
需要重点提一提的一件事——我没有使用 Membership 类(我已经看到使用它对我来说是一种开销,我想实现我需要的确切东西并从这个过程中学习)。
我认为这样做的唯一方法是将所有数据存储在会话对象中,并为会话对象(静态类)提供一个包装器并像使用它一样使用它SessionManager.IsLoggedIn()
,SessionManager.GetUserPriviliges()
或者只是创建一个返回硬类型 UserSessionData 的方法,SessionManager.GetSessionData()
其中包含所有所需的数据。这是在控制器和视图中使用它的一种方式。我应该从 Controller 派生并创建一个RolesController
存储 UserSessionData 这样我就不需要在我的控制器中一次又一次地调用它吗?
我想我将无法使用通用AuthorizedAttribute
,因此我将不得不使用会话包装器来实现它(仅使用会话数据是否安全?因为我没有使用“官方”授权方法,因此我不'真的不知道应该如何实施)。
如您所见,我有一个想法,但自从我第一次这样做以来,我想了解最佳实践以及正确完成它的方式。如果您能解释您的答案,我将不胜感激,因为我想获得完整的想法,而我之前在 MVC 中没有这样做过。
提前致谢!