自定义成员,MVC和WCF。在哪里实施呢?

时间:2012-05-12 06:58:42

标签: wcf asp.net-mvc-3 asp.net-membership roleprovider

我有一个复杂的问题,至少对我来说:),而且它会比编码更多的架构,我会说。

好的,我正在创建一个MVC网站。我有一个wcf服务,这是我与数据库,业务对象等进行通信的唯一方式。

  • 网站(MVC)
  • 托管层(WCF)
  • 服务层(WCF的接口和实现 - 类库)
  • 业务层(类库)
  • 数据层(Plinqo - L2S)
  • 框架(类库 - 这里我有自定义成员资格)

换句话说,在我的mvc层的web.config中,我没有任何连接字符串,只有web服务mambo jambo。我没有实现默认的成员资格和角色提供程序。

我实现了自定义成员资格和角色提供程序。但是,我在服务层级使用它(我在WCF的web.config上声明它)这意味着,从MVC我调用我的webservice客户端的验证方法(client.ValidateUser(User))然后当我做我的时Membership.ValidateUser(用户名,密码)。

如果您需要知道我这样做的原因,我会添加它。请问我。

我的问题...在我的控制器中,当我将角色属性添加到我的方法时,我知道它会失败,因为mvc将尝试使用webconfig中的任何成员资格和角色提供程序...当然,我没有在mvc级别实现它,但在wcf。所以它会弹出一个notImplemented错误。我没有尝试,但我的胆量感觉。我应该在我的mvc中实现它,然后从这个自定义成员资格和角色提供者调用我的wcf(数据库调用)并将其删除我当前的成员资格提供者和角色提供者?

我知道这一切都很棘手和令人困惑。如果您有任何疑问,请告诉我。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

您必须创建Authorize文件管理器的自定义实现,并覆盖必须进行WCF调用并完成所有工作的OnAuthorization方法。

http://geekswithblogs.net/brians/archive/2010/07/08/implementing-a-custom-asp.net-mvc-authorization-filter.aspx