관련 비즈니스에서 근무하는 직원 만 인증해야하는 공용 사이트의 경우 ASP.NET4.0/C# 응용 프로그램에서 작업하고 있습니다. 아이디어는 사이트가 CMS를 보유하여 직원들이 html로 작업하지 않고도 특정 컨텐츠를 변경하고 변경할 수 있도록하는 것입니다.ASP.NET 멤버쉽 - 추가 정보를 추적하기위한 디자인
제 질문은 ASP.NET 멤버 자격 공급자의 디자인과 사용과 관련이 있습니다. 사이트를 기존 데이터베이스로 작업하려고하지 않으므로이 목적을 위해 자체 MembershipProvider를 만들 필요가 없습니다. 그러나 각 사용자는 직원이므로 이름 및 사무실 번호와 같은 추가 정보를 추적하려고합니다. 이 작업을 수행하는 두 가지 명백한 방법을 생각해 볼 수 있습니다.
기본 SqlMembershipProvider 클래스를 사용하십시오. 따라서 필자는 데이터베이스에 적절한 테이블을 추가하고 저장할 "추가"정보를위한 별도의 테이블을 만들어야합니다. 이것은 사실 asp.net 할당 된 userID를 employee 테이블의 기본 키로 사용할 것이기 때문에 사용자 테이블에 수직 파티션을 효과적으로 만듭니다. "추가"정보를 검색하려면 제공자에게 현재 사용자에 대한 정보를 요청하고 다른 것을 알고 싶다면 데이터베이스를 다시 쿼리 할 수 있습니다.
모든 직원 정보 (로그인 및 암호 포함)에 대해 하나의 표를 만들고 원하는 기능으로 내 자신의 맞춤 멤버십 공급자 및 MembershipUser 클래스를 만듭니다.
나는 또한 그러한 정보를 저장하는 프로파일의 사용을 고려했습니다, 그러나, 사이트는 공개적으로 직원의 목록을 포함,이 페이지는이 정보의 일부에 액세스해야합니다. 결과적으로이 데이터를 캐시해야하고 프로필에서 제공하는 직렬화 된 필드를 사용하면 문제가 발생할 수 있습니다.
따라서 디자인과 관련하여 ... 사용자와 직원을 구별하고 기본 SqlMembershipProvider 및 관련 테이블을 사용하거나 필요한 정보를 저장하는 자체 사용자 테이블을 작성하는 것이 가장 좋을까요? 해당 정보에 액세스하기위한 내 자신의 MembershipProvider?
당신은 등 인증, 사무실 번호를 자신의 AD를 사용하지 마십시오? – Rup
예, Windows 인증을 사용하고 있습니다. 그들의 업무용 컴퓨터가 반드시 동일한 네트워크에 있지는 않으므로 양식 인증이 더 합리적입니다. – Shaun