문제

기존 커뮤니티 백엔드가 있고 프레젠테이션 레이어에 Umbraco를 사용하고 싶습니다. .NET 양식 인증으로 로그인/로그 아웃을 구현하려면 어떻게해야합니까? (멤버 기능을 사용하고 싶지 않습니다). 다른 유형의 페이지에 액세스 할 수있는 다른 유형의 사용자가 있습니다. 이것을 어떻게 제어 할 수 있습니까? 사용자 제어?

도움이 되었습니까?

해결책

Umbraco는 멤버십 시스템에 ASP.NET 회원 / 역할 공급자 모델을 사용하며 자신의 구현을 위해 기본값을 교체하는 매우 간단한 단계입니다. 과거에 Active Directory Store에 대해 멤버를 인증하고 싶었지만 사용자 정의 데이터베이스에 대해 인증하기가 훨씬 더 어려워지는 것을 상상할 수는 없습니다.

이점의 이점은 Umbraco 회원 시스템과의 전체 통합을 얻는 것입니다. 사용자 정의 역할 제공 업체를 사용하여 편집자는 자신의 보안 컨트롤에 연결되어있는 것이 아니라 내장 페이지 편집 시설을 사용하여 페이지를 제한 할 수 있습니다. .

연장하여 간단한 멤버십 제공 업체를 만들 수 있어야합니다. umbracomembershipprovider 수업과 우선 ValidateUser 방법. 나는 이것을 직접하지 않았지만 다른 사람들을 알고 있습니다.

사용자 정의 역할 제공 업체에 대해 인증하려면 파생 된 클래스를 만들어야합니다. ROLEPROVIDER. 재정의에 관심이있는 방법은 - 이소 세린 롤, findusersinrole, getAllroles 그리고 getrolesforuser.

다음은 Scott Guthrie에 대한 링크입니다 블로그 게시물 기본 제공 업체의 소스 코드를 포함하여 제공자 API에 대한 자세한 정보가 있습니다.

다른 팁

Umbraco 사이트에서 두 가지 접근 방식을 사용했습니다. 두 가지 방법 모두 사용자 정의 솔루션으로 사용자를 인증하고 자격 증명을 지우는 데 도움이되는 로그인 및 로그 아웃에 대한 사용자 컨트롤이 포함됩니다. 또한 두 가지 접근 방식에 대해 Umbracomembersonly를 보호하려는 모든 문서 유형에 귀속합니다.

첫 번째 접근 방식에서는 각 개별 템플릿 검사를 통해 사용자가 액세스로 제한되었는지 여부를 확인했습니다. 이를 추상화하기 위해, 나는 사이트 전체에서 사용할 수 있었고 XSLT 또는 사용자 제어 매크로에서 호출 될 수있는 ISMember 또는 Isloggedin 방법으로 SiteUser 클래스를 만들었습니다. 이 접근법의 이점은 단순히 동일한 액세스 거부 페이지를 제공하지 않고 각 템플릿에서 사용자 정의 메시지를 맞춤화 할 수 있다는 것입니다.

두 번째 접근법 (지금 선호하는 것)은 사용자의 권리를 확인하는 데 도움이되는 권한 매크로를 작성하는 경우 (즉, Umbracomembersonly 속성에 대한 확인 및 세션 변수를 확인하는 경우). 이 매크로는 마스터 템플릿에 포함되므로 모든 템플릿에서 실행됩니다. 사용자가 현재 페이지에 액세스 할 수있는 권한이없는 경우 동일한 페이지로 리디렉션하지만? alttemplate = 제한된 페이지 또는 유사한 쿼리 문자열에 첨부되었습니다. (권한이 쿼리 문자열에서 alttemplate = 제한된 페이지를 확인하는지 확인하십시오. 그렇지 않으면 리디렉션의 무한 루프로 끝납니다.)

체크 아웃 할 수 있습니다 http://osmembercontrols.codeplex.com

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top