2017-12-08 11 views
-1

私は.NET Core 2 MVCプロジェクトを持っています。私は、プロジェクト内の別のプロジェクトと完全に分離したWebサイトの一部を持っています。これらの両方の「パーツ」は同じセットのユーザーを共有します。私は、ユーザーがログインページを見ることができるようにしたいが、具体的な役割を持つユーザーのみが実際にログインできるようにプロジェクトの部品の一つで 。.NET Core 2 MVCロールベースのログイン

現在、私は、ASP.NETアイデンティティののIsInRoleAsyncメソッドを使用しますユーザーマネージャーが、私はこれに良い解決策があるのだろうかと思っていますか?

おかげ

答えて

0

あなたはAuthorize属性を使用することができます。

public class AccountController : Controller 
{ 
    [HttpGet] 
    public ActionResult Login() 
    { 
     // shows the login page 
    } 

    [HttpPost] 
    [Authorize(Roles = "Administrator")] 
    public ActionResult Login(LoginViewModel model) 
    { 
     // Process login 
    } 
} 
+0

この場合、私は全くログインすることができません。ログインするPOSTリクエストアクションは '[Authorize(Roles =" Administrator ")]によって制限されているので、 –

+0

管理者の役割は一例です。ログインできる自分の役割で置き換える必要があります。 – JimmyFL

+0

あなたがそこに置く役割は何でも、決してうまくいかないでしょう。認証チェックは、ロジックのログインが実際に行われるLoginメソッドの本体の前に実行されるため、そうです。 –

0

私はあなたがこのようなあなたのコードを使用することができると思う:

[HttpPost] 
public ActionResult Login(LoginViewModel model) 
{ 
    // Process login 
    // after he loged in 
    // Check if he is an admin, if not log out using : 
    await signInManager.SignOutAsync(); 
    // then redirect to login page with a message 
} 

私はこれがあなたのために働く願っています。

関連する問題