2017-11-09 11 views
0

皆私はここで少し失われています。この問題を解決するのに役立つ人は誰でも私のテーブルからログインした現在のユーザーでデータを表示できません。ユーザーとそのサブジェクトを表示するはずの空のリスト。空のテンプレートを使用するasp.netで現在のユーザーIDを取得するMVC

(MVC)で空のテンプレートを使用しています。独自のカスタム認証+ロールのみがあります。ユーザーIDには、Intデータ型が使用されています。これで何をするかについて私を導くことができればと感謝します。 Install-Package Microsoft.AspNet.Identity.EntityFramework

ネームスペース:おかげで、事前

パッケージNU-取得Microsoft.AspNet.Identityを使用します。

コントローラー:

[Authorize(Roles = "Admin,Teacher")] 
public ActionResult Index() 
{ 
    int userId = User.Identity.GetUserId<int>(); 
    var subjectTeachers = db.SubjectTeachers.Where(x=>x.UserID==userId); 
    return View(subjectTeachers.ToList()); 
} 

モデル:

[Key] 
public int SubTech { get; set; } 
[Display(Name ="SUBJECT")] 
public int SubjectID { get; set; } 
public virtual Subject Subjects { get; set; } 
[Display(Name = "TEACHER")] 
public int UserID { get; set; } 
public ICollection< User> Users { get; set; } 
[Display(Name = "LEVEL")] 
public int LevelID { get; set; } 
public ICollection< Level> Levels { get; set; } 

対象:。私のテーブルには、現在ログインしているユーザーに属する対象+レベルのリストが表示されるはずですが、残念ながら今は空を表示していますリスト、

+0

可能な複製(https://stackoverflow.com/questions/26739778/get-userid-of-logged-in-user-in [Asp.Net MVC 5にログインしたユーザーのユーザーIDを取得します] -asp-net-mvc-5) –

+0

これをチェックしたいと思うかもしれません[ログインしたユーザーID](https://stackoverflow.com/questions/26739778/get-userid-of-logged-in-user-in -asp-net-mvc-5) –

+0

これは、クレームを使用してasp.net MVCのデフォルトのテンプレートについて話しています、私の主張は使用していないので、私は何が最良の方法ですか?これを得るには?私は本当に主張を使用する必要がありますか? – Copain

答えて

0

私はいくつかの調査をした後、ユーザーの現在のログに基づいてデータを表示する方法を見つけました。私はちょうど知らない人のために共有したい、

空のmvcテンプレートを使用した後、私はこのチュートリアルのリンク に従ってくれてありがとう、彼に感謝します。 http://www.dotnetawesome.com/2015/06/how-to-implement-custom-forms-authentication-in-aspnet-mvc.html

私は彼の4つのチュートリアルに続き、私はこれをコントローラの中に追加します。 次の名前空間を使用することを忘れないでください。

using Microsoft.AspNet.Identity; 

public ActionResult Index() 
    { 

     if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated == true) 
     { 
      var identity = (System.Web.HttpContext.Current.User as MyProject.MyPrincipal).Identity as MyProject.MyIdentity; 
      var demo = db.SubjectTeachers.Where(x => x.UserID == identity.User.UserID).ToList(); 
      return View(demo); 
     }; 
     return View(); 
    } 
関連する問題