3

我目前正在构建一个 n 层 Web 应用程序,主要用于实践新技术和模式 - 存储库、uow、服务、ioc、ef4 和 mvc3。

经过大量的拉扯之后,我现在有了 ef4 使用存储库通过我的服务层保存我的实体。

我现在开始在服务层定义我需要的方法,我认为现在是开始实施身份验证的好时机。通常我会推出自己的身份验证代码,但是朋友告诉我尝试使用 Membership Provider。

现在显然我将在 mvc3 Web 应用程序中使用它,但我想知道我是否也可以在我的服务层中使用它?谁能指出我的任何文章或博客文章?

注意。抱歉,如果我说的是显而易见的,但我只是想明确一点,当我提到我的服务层时,我不是指 WCF;这些是我自己的尊重服务层模式的类 - http://martinfowler.com/eaaCatalog/serviceLayer.html。话虽如此,我可能希望以后通过 WCF 服务公开这个服务层。

我已经在谷歌上搜索了几个小时,但什么也没想到!

非常感谢任何帮助。

4

2 回答 2

1

这是 Scott Mitchell 的18 部分系列文章。

这是对 asp.net 中有关身份验证、授权和成员资格提供程序的所有功能的非常深入的解释。我从来没有从同一作者那里找到更好的来源。

您可以通过使用存储库模式来隐藏实现,就像您现在使用 EF4 所做的那样,无需任何特定更改

希望这可以帮助!

于 2011-01-22T14:34:36.310 回答
1

一种方法是创建一个包含用户名、远程 IP 地址等的“SecurityContext”类。然后创建一个代理类,作为 WCF 服务的代理类。在 Agent 类中,您可以使用静态类创建安全上下文。然后,您可以将此 SecurityContext 传递给所有需要安全性的服务方法上的其他层。这样就足够灵活地在前端进行身份验证和在域/业务逻辑层进行审计等。

于 2011-02-01T00:45:26.573 回答