ログインしたユーザーのユーザーIDを取得するにはどうすればよいですか?私は標準システムで生成されたAccountModelを使用しています。次を使用してユーザー名を取得できます:
User.Identity.Name
しかし、UserIdフィールドが表示されません。 UserIdを別のテーブルの外部キーとして使用したい。
私はあなたが探していると思います ProviderUserKey-ユーザーのメンバーシップデータソースからユーザー識別子を取得します。
object id = Membership.GetUser().ProviderUserKey
Membership.GetUser()-データソースから情報を取得し、現在ログオンしているメンバーシップユーザーの最終活動日時スタンプを更新します。
これを試して:
using Microsoft.AspNet.Identity;
User.Identity.GetUserId();
これが、現在のMVC(MVC5/EF6/VS2013)テンプレートの部分ビューでの方法です。
Aviatrixの回答をたくさん見たので間違っている場合は修正してください。ただし、データベース内で同じ名前のユーザーが複数いる場合はどうなりますか?
そのための最良の方法は、WebSecurtyクラスを使用することです
var memberId = WebSecurity.GetUserId(User.Identity.Name);
そして、コントローラの上に[InitializeSimpleMembership]
を追加することを忘れないでください:)
彼らはすでに非常に良い答えですが、あなたの質問から私が理解したことは、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のデータベースからすべてのデータを返すことができます。