2012-04-16 144 views
5

将定制会员供应商与Orchard集成的首选方式是什么?果园CMS定制会员

我见过一对夫妇各地实施新的IMembershipService和IUserService(从Orchard.Users)职位的,然后还有其他的模块,如OpenAuthentication这似乎做了很多更多的(但仍使用与UserPart? ?)。

我们已经有一个ASP.NET成员资格提供书面,是否可以集成为是?

回答

7

如果您不想使用默认的Orchard.Users模块,自定义实施IMembershipService是一种方法。当您仍然想要进行表单身份验证时很有用,但只需将身份验证数据存储在其他位置,而不是在用户部分中。

如果你想创建一个完全自定义验证方案,它覆盖了基于表单的缺省设置(用户名+密码),覆盖IAuthenticationService

所以,一般地讲:

  • IMembershipProvider是关于认证数据管理(创建/检索用户)
  • IAuthenticationProvider即将执行认证(登录/退出/获取当前用户等)

根据您的需求,您可以覆盖一个或两个。

共同的身份验证模块,像OpenAuth一个,增加额外的身份验证选项,以现有的默认一个没有实际替换它,IIRC。

+3

如果使用一个单独的数据存储实现IMembershipService,哪里的ContentItem财产来自于对IUSER回来了? – Oll 2012-04-16 19:13:23

+0

嗯,实际上是个好问题。 'IUser'需要是一个内容项目,所以它使事情变得复杂一点,但只有一点。您可以创建一个单独的内容项目(例如“用户”),并将其作为每个“IUser”的“ContentItem”属性的值。如果在您的方案中不需要将其他部件附加到用户,这将完美地工作。 – 2012-04-16 21:49:54

+0

你也可以例如。把当前的网站内容项放在那里,所以你不需要创建任何东西。当前网站可以通过'IOrchardServices.WorkContext.CurrentSite'访问。 – 2012-04-16 21:51:49