2014-04-07 3 views
0

MVC4에서 응용 프로그램을 개발 중입니다. 나는 다양한 사용자 유형을 가지고 있으며 각 사용자는 다른 액세스 권한을 가지고 있습니다. 액세스 사용자 캐리 애플리케이션에 따라 그에 따라 뷰가 생성됩니다. 이 액세스는 생성 당시 사용자에게 제공됩니다.액세스 권한을 배치 할 위치

데이터베이스에이 액세스 권한을 저장했습니다. 내 문제는 사용자가 무언가를 할 때마다 액세스 권한이 있는지 여부를 확인해야하므로 데이터베이스에서 가져올 때마다 액세스 권한이 있는지 확인해야하지만 수행하고 싶지 않습니다. 나는 XML 파일에 보관하기를 원하지만, 여러 사용자가 사용할 경우 오작동하는 쓰기를 초과하게됩니다.

나는 그 세부 사항을 유지할 수있는 가장 좋은 곳이 무엇인지 알고 싶어서 프로젝트를 통해 항상 나에게 도움이 될 것입니다.

+2

, 검색 [asp.net MVC 역할] (https://www.google를 .co.uk/search? q = asp.net + mvc + roles). 질문의 절반을 굵게 강조 할 필요가 없습니다. 단지 당신의 질문을 읽기가 어렵게 만듭니다. – oleksii

답변

1

이 정보는 웹 응용 프로그램의 모든 세션에서 액세스 할 수있는 전역 응용 프로그램 캐시에 저장할 수 있습니다. 세션 당 데이터를 저장하려면 세션에 데이터를 저장하는 것이 좋습니다.

Here은 .net에서 캐싱하기위한 기술 및 모범 사례에 대한 링크입니다.

데이터가 로그인 한 사용자를위한 것이므로 세션 캐싱이 더 유용 할 수 있습니다.

세션에서 사용자 데이터를 채우는 것은 매우 간단합니다. 다음은 사용자에 대한 데이터 저장 방법을 보여주는 예제입니다.

이 클래스는 서버 측 메서드에서 액세스 할 수있는 일부 정적 도우미 클래스에서 사용할 수 있습니다.

public static MyAppClass 
{ 
    public static MySession Session { get { return MySession.Current; } } 
} 

그리고 당신의 컨트롤러에 당신은 단순히 유사한 호출 할 :이 "역할"이라고

public ActionResult Login() 
{ 
    MyUser user=GetUserFromDatabase(); 
    MyAppClass.Session.CurrentUser=user; 
} 


public ActionResult SomMethod() 
{ 
    MyUser loggedInUser=MyAppClass.Session.CurrentUser; 
    if(loggedInUser.CanAccess(something)) 
    { 
     .... 
    } 
} 
관련 문제