web-dev-qa-db-ja.com

ログインしているユーザーのIDを取得する

ログインしたユーザーのユーザーIDを取得するにはどうすればよいですか?私は標準システムで生成されたAccountModelを使用しています。次を使用してユーザー名を取得できます:

User.Identity.Name

しかし、UserIdフィールドが表示されません。 UserIdを別のテーブルの外部キーとして使用したい。

18
naveed
15
Erik Philips

これを試して:

using Microsoft.AspNet.Identity;
User.Identity.GetUserId();

これが、現在のMVC(MVC5/EF6/VS2013)テンプレートの部分ビューでの方法です。

Aviatrixの回答をたくさん見たので間違っている場合は修正してください。ただし、データベース内で同じ名前のユーザーが複数いる場合はどうなりますか?

25
prasanthv

そのための最良の方法は、WebSecurtyクラスを使用することです

var memberId = WebSecurity.GetUserId(User.Identity.Name);

そして、コントローラの上に[InitializeSimpleMembership]を追加することを忘れないでください:)

10
Aviatrix

彼らはすでに非常に良い答えですが、あなたの質問から私が理解したことは、id.soを使用してデータベースからデータをフェッチしたいということです。

public List<ForeignkeyTable> RV()
{
 var email = User.Identity.Name;

Usertable m = db.Uusertables.Where(x => x.user_Email == email).SingleOrDefault();

 var id = m.user_Id;

var p = db.ForeignkeyTable.Where(x => x.user_fk_id == id).ToList();


return p;

}

このようにして、foreignkeyでそのIDのデータベースからすべてのデータを返すことができます。

0
Learner