2009-09-29 123 views
0

我已经设置了两个会员供应商:我的自定义供应商和Sitefinity供应商。我的自定义成员资格提供程序设置为默认值。TelerikProfileProvider与自定义会员供应商

我想为两组用户使用Sitefinity的Profile提供程序。但是,配置文件提供程序似乎只适用于我退出Sitefinity成员资格提供程序的用户。

与反射周围戳了一下后,似乎Telerik的配置文件提供假定用户名在它自己的数据库存在。

User userByName = this.Application.GetUserByName(userName); 
if (userByName != null) 
{ 
// magic happens here... 
} 

所有魔法只有在能够在本地检索用户时才会发生。似乎违反提供商的原则。不管会员供应商是否应该可以随意向任何用户添加属性?

(我also posted this在Sitefinity论坛,但没有得到响应了。所以一直把我宠坏了,我已经开始期待在几分钟内,而不是几天的答案。)

回答

0

如果我没有理解您正确地想要使用sitefininty提供程序作为基础,并将一些附加信息附加到用户配置文件。

一般来说,我会建议不要试图用内部sitefininty管理打成一片。而是尝试将任何想要执行的功能附加到标准提供程序。

我在过去的这些情况下所做的工作是创建一个成员资格提供程序包装器(在您的情况下是一个ProfileProviderWrapper),该资源包含对另一个配置文件提供器的内部引用,同时作为配置文件提供程序本身。

这样你就可以打电话回实际的底层供应商(或者也许你不回电话的话)后,执行前,你想要的任何代码/。 例如:在返回配置文件之前,您可以附加其他属性。

这样,你不破sitefinity行为,同时仍然能够干涉。