【发布时间】:2017-06-05 17:50:59
【问题描述】:
我有一个 3 层 MVC 解决方案:MVC Web - 业务层 - 数据访问层
我在数据库后端有用户和组的自定义表,用户组映射到自定义权限结构。身份验证需要检查用户是否存在,而授权需要根据用户的权限来验证用户可以执行的操作。
我可以通过实现自定义 AuthorizeAttribute 并询问服务级别是否 HttpContext.User.Identity.Name 存在于用户表中来执行身份验证和授权,还可以根据控制器和操作验证用户权限。
但是,服务级别在从控制器中的操作调用时需要再次授权用户。这允许更好地控制用户可以做什么和不能做什么 - 例如,根据用户组成员身份,有些字段是只读的或隐藏的。
问题是我最终将在控制器操作的 AuthorizeAttribute 中以及从控制器操作本身(通过服务级别)中对用户进行身份验证和授权。
这是一个设计问题,但想看看我是否以最好的方式解决问题!
【问题讨论】:
标签: model-view-controller windows-authentication service-layer