3

Enitty フレームワークを使用して ASP.NET MVC 3 にカスタム メンバーシップ プロバイダーを実装しようとしています。ユーザー データについては、すべてのログイン データとその他のデータを保持する User クラスを作成しました。MembershipProvider を実装しようとしたときに、署名に MembershipUser パラメーターを持つ、実装する必要があるいくつかのメソッドが表示されました。

public override void UpdateUser(MembershipUser user) 

User クラスに MembershipUser クラスを継承させることができることはわかっていますが、これは問題になりません。しかし、継承しようとすると、メールなどの読み取り専用プロパティに値を設定できませんでした。

これらのメソッドが User 型のオブジェクトを受け入れる方法はありますか? それとも、これに対する他のより良いアプローチがありますか?

4

1 に答える 1

0

参考文献

http://msdn.microsoft.com/en-us/library/ms152065.aspx

必要なパラメーターのみを持つカスタムMembershipUser

http://www.codeproject.com/Articles/165159/Custom-Membership-Providers

答え

MembershipUserのインスタンスを作成し、コンストラクターでプロパティ(読み取り専用かどうかに関係なく)を渡してから、そのMembershipUserインスタンスを返すことができます。

MembershipUserクラスのドキュメントには、これをよりよく理解するのに役立つ引用があります。

新しいMembershipUserオブジェクトを作成しても、新しいメンバーシップユーザーオブジェクトはメンバーシップデータストアに追加されません。

カスタムプロパティを追加することが重要な場合は、MembershipUserをサブクラス化する必要があります。

例については、以下を参照してください:必要なパラメーターのみを持つカスタムMembershipUser

最後の参照リンクは、EFではなくLinq-to-Sqlを使用するカスタムメンバーシッププロバイダーに関する優れた記事を示していますが、類似点はたくさんあります。

お役に立てば幸いです。

于 2012-12-13T02:47:53.270 に答える