2009-12-20 5 views
0

대부분의 실제 웹 응용 프로그램에는 적어도 하나의 dll 라이브러리가 있습니다. ASP.NET 멤버 자격 공급자를 사용하는 경우 dll에서 Roles.IsInRole 메서드를 호출하려면 어떻게해야합니까?ASP.NET DLL에서 IsInRole을 사용하는 방법

HttpContext를 참조 할 가능성이 좋지 않습니다. 왜냐하면, 우리는 몇 가지 일괄 작업을 완료하는 데 동일한 dll을 사용하는 몇 가지 콘솔 응용 프로그램 도구가 있기 때문입니다.

+0

이것은 디자인 문제 인 것 같습니다. 더 나은 결과를 얻기 위해 어떻게 작동 시키길 원하는지 유스 케이스 시나리오를 포함시킬 수 있습니까? –

+0

MembershipProviders의 작동 방식과 구성을 사용하는 방법을 설명하는 맞춤 멤버십 제공 업체에 대한 동영상을 시청하는 것이 좋습니다. http://www.asp.net/learn/videos/video-189.aspx –

답변

1

ASP.NET에서 멤버 자격 메커니즘을 분리해야하는 것처럼 들립니다.

ASP.NET 응용 프로그램에서 ASP.NET 멤버 자격 공급자를 참조하는 방법에 대해서는 콘솔 응용 프로그램과 동일한 방식으로 작동하는 좋은 리소스 인 here이 있습니다.

가장 좋은 것은 here (VB.NET에서)입니다.

그러나 모두 동일한 기본 문제가 있습니다. 즉, 악의적 인 사용자가 자신의 권한 데이터베이스를 사용하도록 구성을 변경할 수 있다는 것입니다. ASP.NET 구성은 사용자가 사용할 수 없으므로 같은 문제가 발생하지 않습니다.

더 나은 방법은 ADO.NET의 코드에서 ASP.NET 멤버십 데이터베이스를 직접 쿼리하는 것입니다 (매우 어렵지 않습니다.) 또는 기본 멤버십 공급자 인터페이스 (MSDN here의 상세 정보)를 직접 구현할 수 있습니다. 그런 다음 ASP.NET 멤버십 공급자가 자신의 코드를 호출하여 사용자가 역할에 속해 있는지 확인하고 콘솔 응용 프로그램에서와 동일한 방식으로이 코드를 사용할 수 있습니다.

+0

DPAPI 공급자를 사용하여 web.config의 섹션을 암호화 할 수 있습니다. 그리고 asp.net 회원 데이터베이스를 직접 쿼리해서는 안됩니다. 나는 이것을 나쁜 행동이라고 생각한다. –

관련 문제