2010-01-17 3 views
3

내 VS 솔루션에는 두 개의 프로젝트가 있습니다. 하나는 웹 인터페이스이고 다른 하나는 DataAccess 및 BusinessLogic입니다. 나는 현재 로그온 한 사용자가이 같은 웹 인터페이스 프로젝트에 직원은 뒤에 코드에서 경우 내가 확인할 수 있습니다 알고사용자가 사용자 지정 클래스의 역할에있는 경우 ASP.NET 멤버 자격 확인

Dim isEmployee = User.IsInRole("Employee") 

문제는 내 지방 검사와 BL 프로젝트의 클래스 호출 UserManagement을 가지고있는 현재 로그온 한 사용자 역할도 확인하고 싶습니다. Dim isEmployee = User.IsInRole("Employee")은 (는) aspx 페이지가 없기 때문에 사용할 수 없습니다.

내 맞춤 클래스의 사용자 역할을 확인하려면 어떻게해야합니까?

감사합니다.

답변

4

비즈니스 프로젝트에서 System.Web을 참조해야합니다.

Dim context As System.Web.HttpContext = System.Web.HttpContext.Current 
    Dim isRole As Boolean = context.User.IsInRole("Admin") 

또는 C# 내가 아는

System.Web.HttpContext context = System.Web.HttpContext.Current; 
bool isRole = context.User.IsInRole("Admin"); 
+0

정말 고마워요. 테이블에 외래 키로 userId가 있기 때문에 userId (또는 username)별로 특정 역할의 사용자가 있는지 어떻게 확인합니까? 사실, 내 함수는 역할을 확인하기 위해 userId를 param으로 사용합니다. –

+1

다음 주석에서 아래의 코드를 참조하십시오. 도움이된다면 이것을 답변으로 표시하는 것을 잊지 마십시오! –

+0

Dim isInRole As 부울 = System.Web.Security.Roles.IsUserInRole ("Bayonian", "Admin") –

0

웹 응용 프로그램에서 사용자의 역할을 처음 결정할 때 해당 코드 이어야 결정을 내리는 일종의 비즈니스 개체가되어야합니다. 따라서 의존성은 웹 앱에서 비즈니스 계층 (웹 앱에는 비즈니스 계층이 필요함)이 아니라 다른 측면에서 다릅니다.

+0

...하지만 그게 내가 요구하고있는 무슨이다 : 그런 다음 다음을 수행합니다. 사용자가 비즈니스 계층의 사용자 정의 클래스에서 역할에 있는지 확인하기 위해해야 ​​할 일은 무엇입니까? 난 뒤에 코드를 확인하는 방법을 알고. –

+0

Bayonian : 어떻게 당신의 웹 앱에서'IsInRole()'을 어떻게 구현합니까? 표준 또는 사용자 지정 공급자 사용? –

+0

표준 공급자 사용. –

관련 문제