1

System.Web.Providers を使用して ASP.NET MVC 4 をセットアップしました。住所、生年月日などのユーザー情報を追加したいと思います。

また、各投稿にプロバイダーの作成者が含まれるように、プロバイダーの既存のユーザー データを投稿に関連付けたいと思います。

ユーザーが投稿を作成するとき、その投稿を選択することで、ユーザーに関するすべての情報を (遅延して) 利用できるようにする必要があります。

UserProfile標準の MVC テンプレート プロジェクト (HTTP ログインで使用されているようです) のクラスとプロバイダーのクラスを含む User クラスを持つことを考えていたのかもしれませんがaspnet_users、どうすればよいかわかりません。

これを行う一般的な方法は何ですか?

4

2 に答える 2

1

と一緒に行くことをお勧めしProvidersます。これらは非常に長い間ASP.NETで利用でき、現在も使用されています。それらの実装は両方 ( WebFormsMVC ) で同じであるため、それらに関するこの包括的なチュートリアルを読むことをお勧めします。

このProfile機能は、まさにユーザー固有の情報の場所です。簡単に拡張でき、 への拡張ポイントを表しMembershipます。Profile1 つのクラスを使用しています。

public class ProjectProfile : ProfileBase 
{
    // TODO custom properties 
}

web.config で構成

<profile defaultProvider="ProjectProfile" 
         inherits="MyLibrary.ProjectProfile, MyLibrary">
  <providers >
  <clear/>
  <add name="ProjectProfile" type="MyLibrary.ProjectProfileProvider, MyLibrary" />
  </providers>
</profile>

したがって、 にSystem.Web.HttpContext.Current.Profile as ProjectProfileは必要な情報があります。

于 2012-12-01T08:20:01.097 に答える
1

このリンクは、ProfileProvider を実装するためのすべての情報を提供します。

投稿 (3 番目のオプションを使用) およびこの回答で提案されているように、プロファイルを現在アクティブなユーザーにバインドする独自のロジックを実装することを検討する必要があります。

プロファイル クラスを使用し、MembershipUser'one を拡張してクラスを実装します。そのようにして、次のような方法でアクセスできます。

var user = Membership.GetUser();
var profile = user.Profile;
于 2012-12-01T08:24:36.983 に答える