2016-09-23 15 views
3

私はasp.net mvcを使い慣れていません。私は3つのユーザーロール(Admin、Teacher、Student)を持っています。私は、ユーザがログインしているとき、リダイレクトするとき、またはユーザの役割に基づいてユーザをルーティングするときに、そしてユーザがログインページをスキップするためにログインしているときにしたい。アドバイスAsp net mvc 5セキュリティ

おかげで、私は深く説明しよう:

私はSQL、ユーザ(ユーザ名、パスワード、電子メール、役割、datejoined、indexNo)のテーブルを持っている、と私は誰かの試してみたいですユーザがそのテーブルに存在してロールをチェックしている場合はログインする。

ユーザーが管理者の役割にリダイレクトして管理者ビューにリダイレクトする場合は、ほかに教師の役割にリダイレクトする教師の役割がある場合は生徒にリダイレクトします。 3つすべてのビューは、異なるオプションで異なるルック・アンド・フィールです。 [Authorized]注釈を付けると、アプリケーションのすべてのユーザーは他のすべてのユーザーのオプションを見ることができますが、アクセスすることはできません。私はすべての役割に、その役割のオプションを持つ自分のビューと、別の役割のオプションを表示しないようにします。

+0

あなたは【こちら】(http://www.codeproject.com/Articles/607392/Custom-Role-Providers).. 'RoleProvider'を実装することで、独自の'カスタム役割provider'クラスを作成することができ、そのです例。 – mmushtaq

答えて

1

ロールの特定のビューベースにリダイレクトするには、次のコードを実行します。

public ActionResult RedirectLogin(string returnUrl) 
{ 
    if(User.IsInRole("Admin")){ 
       return RedirectToAction("Index", "Admin"); 
      } 
    if(User.IsInRole("Teacher")){ 
       return RedirectToAction("Index", "Teacher"); 
      } 
    if(User.IsInRole("Student")){ 
       return RedirectToAction("Index", "Student"); 
    } 
} 
関連する問題