我有一个业务逻辑层(“存储库”), 它作为一组.NET接口,支持可交换的具体实现。
最初,这个业务层实现了身份验证和授权(authn/authz),意味着我有像IUserIdentity和IUserRole这样的接口,所有访问敏感数据的方法都需要传入IUserIdentity并在允许动作之前进行授权。
到目前为止,业务层非常不依赖于前端...但是现在,当我尝试集成到一个ASP.NET网站时,我意识到ASP.NET本身通过Membership和Role API内置了丰富的身份验证/授权系统。
所以问题是,我应该从业务逻辑层中删除所有的authn/authz并依靠Web前端来做这件事吗?这会使事情简化很多,但我不知道以后会不会后悔移除它。
另一种选择是保留authn/authz在我的业务逻辑中,但通过自定义的Membership/Role提供程序与ASP.NET集成。然而这似乎非常繁琐...我仍然需要调查这样做的成本。
您会怎么做(或已经做过)以及原因是什么?