我目前正在构建一个n层Web应用程序,主要用于实践新技术和模式 - 存储库,uow,services,ioc,ef4和mvc3。
经过大量的拔毛后,我现在已经使用存储库通过我的服务层保存了我的实体。
我现在开始定义服务层中需要的方法,现在正在考虑开始实现身份验证的好时机。通常情况下,我会推出自己的身份验证码,但是朋友告诉我尝试使用会员提供商。
现在很明显我将在mvc3网络应用程序中使用它,但我想知道我是否也可以在我的服务层中使用它?有人能指出我的任何文章或博客文章吗?
NB。抱歉,如果我说的是显而易见的事情,我只想清楚,当我指的是我的服务层时,我不是指WCF;这些是我自己的类,它们尊重服务层模式 - http://martinfowler.com/eaaCatalog/serviceLayer.html。话虽如此,我可能希望稍后通过WCF服务公开此服务层。
我现在一直在谷歌上搜索几个小时而没有想出任何东西!
非常感谢任何帮助。
答案 0 :(得分:1)
这是来自Scott Mitchell的18 part series篇文章。
这是对asp.net中有关身份验证,授权和成员资格提供程序的所有功能的非常深入的解释。我从未在同一位作者那里找到更好的资料来源。
您可以隐藏使用存储库模式的实现,就像您今天使用EF4一样,没有任何特别的更改
希望这有帮助!
答案 1 :(得分:1)
一种方法是创建一个包含用户名,远程IP地址等的“SecurityContext”类。然后创建一个Agent类,作为WCF服务的代理类。在Agent类中,您可以使用静态类创建安全上下文。然后,您可以将此SecurityContext传递给需要安全性的所有服务方法上的其他层。这样,它就足够灵活,可以在域/业务逻辑层上进行前端身份验证和审计等。