6

新しい MVC4 アプリケーションが UserProfile テーブルを作成しました:

ユーザーID(整数) | ユーザー名(nvarchar)

コントローラー内:

  string currentUser = User.Identity.Name;  // returns UserName

  var mu1 = Membership.GetUser(); // returns null

  var mu2 = Membership.GetUser(currentUser); // returns null as well

私は多くのスレッドを読みましたが、それらはすべて Guid の取得について話していますが、これはユーザー テーブルとメンバーシップ テーブルにもありません。

現在ログインしている User の UserId (int) を取得する方法はありますか?

4

4 に答える 4

12

ディレクトリ内[InitializeSimpleMembership]のファイルを介して単純なメンバーシップを初期化するように、コントローラーの先頭に追加してください。InitializeSimpleMembershipAttribute.csFilters

次に、いくつかの異なる方法でユーザー ID にアクセスできます。

int mu1 = (int)WebSecurity.CurrentUserId;
int mu2 = (int)Membership.GetUser().ProviderUserKey;
于 2013-03-13T10:28:14.017 に答える
3

UserId を int として取得できます

WebSecurity.GetUserId(User.Identity.Name);

追加情報:[InitializeSimpleMembership] AccountController 以外のコントローラーを使用する場合は、コントローラー クラスの上に追加する必要があります。

于 2013-03-02T23:10:15.087 に答える
0

ユーザーIDを取得できます

if (Request.IsAuthenticated)
 {
  var membership = (SimpleMembershipProvider)Membership.Provider; 
  int idUser = membership.GetUserId(User.Identity.Name);
 }
于 2014-11-02T10:26:00.400 に答える
0

mu1ユーザーが正常に認証mu2された場合のインスタンスが含まれます。ユーザーの識別子を含むタイプのプロパティがあります。MembershipUserMembershipUserProviderUserKeyobject

Membership.GetUser()アプリケーションとユーザーの認証のために MembershipProvider を接続する必要があります。返されたと表示されているためnull、これは前述の条件のいずれかが満たされていないことを示しています。

于 2013-03-02T23:07:54.073 に答える