2014-05-10 2 views
3

기본적으로 내 프로젝트/웹 사이트에 2 개의보기를 추가하고 싶습니다. 하나는 관리자 용이고 다른 하나는 사용자 용입니다. 이미 대상 컨트롤러에 [Authorize] 태그가 추가되어 작동합니다.MVC 4.0 면도기에서 인증하는 방법

사용 후 [등록] 태그를 삽입하면 등록 페이지로 리디렉션되고 등록 회원이 데이터를 입력 할 수 있습니다. 하지만 테이블에 데이터를 입력 할 수있는 특정 관리자는 어떻게해야합니까 ??

여러 튜토리얼과 비디오를 보지만 작동 방법이 분명하지 않습니다. 복수 사이트 비디오에서는 시드 데이터를 사용하여 거기에 메소드를 작성합니다. 그러나 데이터베이스에 데이터를 입력했습니다. 그렇다면이 비디오 자습서로 어떻게 작업 할 수 있습니까 ?? 왜냐하면 난 종자 데이터가 없기 때문이야.

+0

관리자 방법으로 만 관리자에게 권한을 부여 하시겠습니까? 관리자 만이 양식에 데이터를 삽입 할 수있게하려면 모든 사용자가 처음부터 해당보기로 이동하게하는 이유는 무엇입니까? – e4rthdog

+0

당신이 무엇을 요구하고 있는지 명확하지 않습니다. 정보를 입력하는 역할에 따라 사용자를 제한 하시겠습니까? 또는 볼 수있는 일부 입력을 볼 수있는 액세스? 또는 '이 비디오 자습서로 어떻게 작업 할 수 있습니까?' :) –

+0

@ e4rthdog 사실 관리자 한 명만 컨트롤러 메서드를 인증하고 싶습니다. 하지만 다른 사용자가 테이블에 액세스하는 것을 제한하는 방법을 모르겠습니다. – mgsdew

답변

6

당신은 간단한 if 문으로 그에게 바로 표시되지 않는 HTML로보기에 사용자를 제한 할 수 있습니다 : 그런 속성

@if (User.IsInRole("Admin")) 
{ 
    //here blocks that you want to show to users with Admin role 
} 

은 또한 당신이 [권한 부여] 일부 특정 작업을 장식 할 수 있습니다

[Authorize(Roles = "Admin")] 
public ActionResult SaveTopSecret() 
{ 

} 

User.IsInRole("Admin")도 컨트롤러에서 사용할 수 있으므로 어떤 사용자에게 어떤보기를 표시할지 결정할 수 있습니다.

public ActionResult Index() 
{ 
    if(User.IsInRole("Admin")) 
    { 
     return View("Admin"); 
    } 
    return View("User"); 
} 
+0

프로젝트에서 역할을 만드는 방법은 무엇입니까? 나는 그 프로젝트의 세부 묘사 방법이나 다른 것을 써야한다는 것을 의미한다. 내 컨트롤러의 맨 위에있는 그 라인을 쓰지 마라. – mgsdew

+2

지난 수십 년간 Microsoft는 역할 관리를 위해 여러 시스템을 만들었으므로 사용중인 시스템에 따라 다릅니다. 마지막 시스템 인 Identity를 사용하는 경우 새 역할을 추가하고 사용자에게 할당하는 데 도움이되는 UserManager와 RoleManager의 두 클래스가 있습니다. http://typecastexception.com/post/2014/04/20/ASPNET-MVC-and-Identity-20-Understanding-the-Basics.aspx에서 기사를 살펴보십시오. –

2
@ if (User.IsInRole("Admin")) 
{ 
    return RedirectToAction("Index","Home"); 
} 
else 
{ 
    return RedirectToAction("Index2","Home"); 
} 

희망 하시겠습니까?

관련 문제