0

我设置了两个会员提供程序:我的自定义提供程序和 Sitefinity 提供程序。我的自定义会员提供程序设置为默认值。

我想为两组用户使用 Sitefinity 的个人资料提供程序。但是,配置文件提供者似乎只适用于我从 Sitefinity 会员提供者中退出的用户。

在仔细研究了一下 Reflector 之后,Telerik Profile Provider 似乎假设用户名存在于它自己的数据库中。

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

只有当它能够在本地检索用户时,所有魔法才会发生。似乎违反了提供者的原则。无论会员资格提供者如何,我不应该可以任意向任何用户添加属性吗?

(我也在Sitefinity 论坛上发布了这个,但还没有得到回复。所以已经宠坏了我。我期待在几分钟内得到答案,而不是几天。)

4

1 回答 1

0

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

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

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

这样,您可以在回调实际的底层提供者之前/之后执行您想要的任何代码(或者您可能根本不回调)。例如:在返回配置文件之前,您可以将其他属性附加到它。

这样您就不会破坏站点限制行为,同时仍然可以进行干预。

于 2010-04-19T10:31:59.123 回答