활성 디렉토리를 사용자 저장소로 사용하는 경우 데이터베이스의 정보를 특정 사용자와 어떻게 관련시킬 수 있습니까? 인증 후에 데이터베이스에 삽입해야합니까? 아니면 인증을 위해서만 광고 멤버 자격 공급자를 사용하고 SQL 멤버 자격 공급자를 사용해야합니까?활성 디렉토리 멤버십 공급자 및 사용자 데이터
답변
회원 공급자는 인증에만 관심이 있습니다. 권한 부여 (인증과 동일한 것은 아닙니다)는 논리에 의해 수행되며, 필요에 따라 역할 공급자와 함께 수행됩니다.
역할에 대해 Active Directory를 사용할 수 있지만 ASP.NET에는 기본 (예 : http://www.codeproject.com/Articles/28546/Active-Directory-Roles-Provider)이 포함되어 있지 않으므로 외부 구현을 사용해야합니다.
당신이 회원에 대한 AD를 사용하고 있지만 데이터베이스에서 사용자를 추적하려면 다음이 독특하고 불변 모두의 때문에 AD 사용자의 objectGUID
속성을 사용하는 것이 좋습니다 경우, cn
및 objectSid
같은 다른 속성은 고유 한 것이 아니라, 불변.
개인적으로 나는 다른 모든 것들과 항상 얽혀 있지 않은 응용 프로그램에서 논리적으로 분리 된 관심사를 만드는 특별한 처리가 필요하기 때문에 개인적으로 ASP.NET 프로젝트의 Membership/Roles/Profiles 기능을 사용하지 않습니다. 특히 엔터티에 ORM을 사용하는 경우에는 응용 프로그램을 사용해야합니다. Membership
개체가 모델에 새 인터페이스를 제공하기 때문에 사용자의 응용 프로그램의 내부 엔터티 모델과 관련하여 복잡한 구현을 피하기 위해 사용자가 구현 한 경우에도 여전히 문제가 발생합니다. 사용자 인터페이스를 구현하기 위해 기존 시스템 위에 구현해야하는 인터페이스 . 따라서 매우 기본적인 웹 사이트에 회원/역할/프로필 만 사용하는 것이 좋습니다.
응답 해 주셔서 감사합니다. 초자연적 인 사이트 이상으로 어떤 경로를 권장합니까? – Robert
@ 로버트 당신의 요구 사항에 대해서는 아무 것도 몰라요. (하지만 보통은 처음에 응용 프로그램 아키텍처와 데이터베이스 디자인을 망치고 시작합니다.) – Dai