具有自定义成员资格提供程序的TelerikProfileProvider

时间:2009-09-29 16:26:41

标签: asp.net-membership sitefinity

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

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

稍微调整一下Reflector后,似乎Telerik Profile Provider假定用户名存在于自己的数据库中。

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

只有能够在本地检索用户才会发生所有魔法。似乎违反了提供商的原则。无论会员提供商是谁,我都不应该随意向任何用户添加属性吗?

(我在Sitefinity论坛上also posted this,但还没有得到回复。这样就破坏了我。我希望在几分钟内得到答案,而不是几天。)

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望将sitefininty提供程序用作基础,并将一些其他信息附加到用户配置文件。

总的来说,我建议不要试图与内部网站管理混合。而是尝试将您想要执行的任何功能附加到标准提供程序。

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

通过这种方式,您可以在回调到实际的基础提供程序之前/之后执行您想要的任何代码(或者您可能根本不回调)。 例如:在返回配置文件之前,您可以附加其他属性。

这样您就不会破坏sitefinity行为,同时仍能干扰。