2017-11-06 10 views
0

ログインしたユーザが現在のユーザに属しているSubjectのリストしか見ることができない場合は、userID + SubjectIDのリストを表示するテーブルがあります。可能?私はasp.netのアイデンティティを使用する必要がありますか?現在のところ、カスタムログイン認証+ロールだけの空のテンプレートを使用していますが、このタイプのシナリオを処理する最も良い方法は何ですか?私が望むすべてが私のテーブルは、現在ログインしているユーザーに基づいてデータが表示されますですMVCユーザのログインに基づいてデータを表示

例: I: User1がログインしている場合、User1は唯一の被験者が..

注意をuser1に属して表示されますログインしている現在のユーザーに基づいてデータを表示するチュートリアルを検索していましたが、見つけられませんでした。またはリンクは私と共有することができますか?誰もが事前にthis..thanksを解くことができる場合、私は..私は感謝し、私はちょうど「現在のユーザーに基づいて番組データ」と呼んで私のシナリオのためのより良い言葉を知らない

テーブルコントローラ:

[CostumAuthorize(Roles = "Admin,Teacher")] 
    public ActionResult Subject_List(int id) 
    { 
     var test = db.SubjectTeachers.Where(x => x.Users.Any(n => n.UserID == id)).ToList(); 
     var subjectTeachers = db.SubjectTeachers.Include(s => s.Levels).Include(s => s.Subjects).Include(s => s.Users).Where(u => u.LevelID == id); 
     return View(subjectTeachers.ToList()); 


    } 

アカウントコントローラ:

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Login(Login l, string ReturnUrl = "") 
    { 



     if (!ModelState.IsValid) 
     { 
      return View(l); 
     } 
     using (MyContext dc = new MyContext()) 
     { 
      var user = dc.Users.Where(a => a.Username.Equals(l.Username) && a.Password.Equals(l.Password)).FirstOrDefault(); 
      if (user != null) 
      { 
       FormsAuthentication.SetAuthCookie(user.Username, l.RememberMe); 
       if (Url.IsLocalUrl(ReturnUrl)) 
       { 
        return Redirect(ReturnUrl); 
       } 


       return RedirectToAction("Index", "Home"); 

      } 

     } 

     ModelState.AddModelError("", "Invalid Login."); 
     return View(l); 
} 


    [Authorize] 
    public ActionResult Logout() 
    { 
     FormsAuthentication.SignOut(); 
     return RedirectToAction("Login", "Account"); 
    } 
} 

答えて

1

あなたが得ることができた場合は、ログインしているユーザーID、単にテーマリスト対応得るためにそれを使用.........

int userid = Membership.GetUser(User.Identity.Name).ProviderUserKey; 
[CostumAuthorize(Roles = "Admin,Teacher")] 
public ActionResult Subject_List() 
{ 
    var test = db.SubjectTeachers.Where(x => x.Users.Any(n => n.UserID == userid)).ToList(); 
    return View(test.ToList()); 
} 
+0

どうすれば入手できますか?任意のアイデア – Copain

+0

は、あなたのプロジェクトで実装した認証に依存します。ここであなたは(問題の)カスタムログインとして言及しました。認証 –

関連する問題