我有一个业务逻辑层("存储库"),它作为一组.NET接口公开,由可交换的具体实现支持.
最初我有这个业务层实现身份验证和授权(authn/authz),这意味着我有IUserIdentity和IUserRole等接口,所有访问敏感数据的方法都采用了IUserIdentity并在允许操作之前执行了授权.
到目前为止,业务层一直是前端不可知的...但是现在当我尝试集成到ASP.NET网站时,我意识到ASP.NET本身内置了丰富的身份验证/授权系统通过成员资格和角色API.
所以问题是,我应该从业务逻辑层中删除所有authn/authz并依赖Web前端来执行此操作吗?这会简化很多事情,但我不知道我后来会后悔将它移出去.
另一种方法是将authn/authz保留在我的业务逻辑中,但通过自定义成员资格/角色提供程序将其与ASP.NET集成.然而,这看起来真的很麻烦......我仍然需要调查这样做的成本.
你会做什么(或做过什么)以及为什么?
我认为安全是一个跨领域的问题,属于各个方面.我不知道.NET是否有方面,除非你使用Spring.NET.