2017-12-08 1 views
-1

.NET Core 2 MVC 프로젝트가 있고 웹 프로젝트의 일부가 웹 프로젝트의 다른 프로젝트와 완전히 분리되어 있습니다. 이 두 "부분"은 동일한 사용자 집합을 공유합니다. 프로젝트의 일부에서 사용자가 로그인 페이지를 볼 수있게하려면 특정 역할을 가진 사용자 만 실제로 로그인 할 수있게하십시오..NET Core 2 MVC 역할 기반 로그인

현재 IsInRoleAsync ASP.NET ID 사용자 관리자,하지만이 더 나은 해결책이 있는지 궁금 무엇입니까? 난 당신이 같은 코드를 사용할 수 있다고 생각

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

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

답변

0

당신은 Authorize 속성을 사용할 수 있습니다.

+0

이 경우 나는 전혀 로그인 할 수 없습니다. 로그인하려는 POST 요청 동작은'[Authorize (Roles = "Administrator")]로 제한되기 때문에 –

+0

관리자 역할은 로그인 할 수있는 자신의 역할로 바꾸어야합니다. – JimmyFL

+0

당신이 거기에 끼워 넣은 역할이 무엇이든간에 그것은 결코 작동하지 않을 것입니다. 권한 부여 확인은 Log in Logic이 실제로있을 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 
} 

나는이 당신을 위해 일하는 희망

감사