【发布时间】:2011-01-06 07:59:24
【问题描述】:
我目前正在使用 .NET 环境(n 层)中的企业应用程序,我想知道在我的 BussinessLayer (BL) 中管理身份验证/授权 + 数据过滤的最佳方法。我们将从几个接口(ASP.NET 应用程序和 WebServices)中使用该 BL,我认为我的 ServiceLayer 应该可以完成这项工作,但我找不到最好的方法。
我想可能是这样的: (1) 用户获得身份验证(ASP.NET Web 客户端),可能使用 FormsAuthentication。 (2) ASP .NET 代码(Controller / CodeBehind)实例化一个服务来完成一些用户案例,以某种方式传递“用户”。 (3) 服务方法检查“用户”是否存在(身份验证)和他的角色(授权),以验证他是否可以调用该方法。如果未经过身份验证或授权,则会引发异常。 (4) 服务使用存储库 + 其他服务 + 完成工作所需的一切。如果需要某种细粒度过滤(例如,用户仅对某些项目具有权限),服务会自动应用它。
我想要的是让 ServiceLayer 与“网络东西”(不是访问会话......)隔离开来,但谁知道用户调用它的方法来正确行动。此外,我不知道如何以一种好的方式将该工作与 ASP .NET 身份验证相匹配...... 我正在考虑总结 Service ctor 中的“用户”,以便其方法具有他们需要的“上下文”,这可以工作吗?...我将不胜感激一些迹象或现有的代码 sn-ps。
感谢您的帮助...
【问题讨论】:
标签: c# security architecture service domain-driven-design