0

カスタム プロバイダーと Sitefinity プロバイダーの 2 つのメンバーシップ プロバイダーをセットアップしました。カスタム メンバーシップ プロバイダーがデフォルトとして設定されています。

両方のユーザー セットに Sitefinity のプロファイル プロバイダーを使用したいと考えています。ただし、プロファイル プロバイダーは、Sitefinity メンバーシップ プロバイダーから引き抜いたユーザーに対してのみ機能するようです。

Reflector を少し調べてみたところ、Telerik プロファイル プロバイダーは、ユーザー名が独自の DB に存在すると想定しているようです。

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

すべての魔法は、ユーザーをローカルで取得できた場合にのみ発生します。プロバイダーの原則に違反しているようです。メンバーシップ プロバイダーに関係なく、任意のユーザーに任意にプロパティを追加できるようにすべきではありませんか?

(私はこれを Sitefinity フォーラムにも投稿しましたが、まだ応答がありません。SO は私を台無しにしました。数日ではなく、数分で回答を期待するようになりました。)

4

1 に答える 1

0

私が正しく理解している場合は、sitefininty プロバイダーをベースとして使用し、いくつかの追加情報をユーザー プロファイルに添付してください。

一般に、サイトフィニティの内部管理者と交流しようとしないことをお勧めします。代わりに、実行したい機能を標準プロバイダーにアタッチしてみてください。

過去にこれらの状況で私が行ったことは、プロファイルプロバイダー自体でありながら、別のプロファイルプロバイダーへの内部参照を保持するメンバーシッププロバイダーラッパー (あなたの場合は ProfileProviderWrapper) を作成することでした。

このようにして、実際の基になるプロバイダーにコールバックする前/後に、必要なコードを実行できます (または、まったくコールバックしない場合もあります)。例: プロファイルを返す前に、プロファイルに追加のプロパティを添付できます。

このようにして、サイトフィニティの動作を壊すことはありませんが、干渉することはできます。

于 2010-04-19T10:31:59.123 に答える