3

관련 비즈니스에서 근무하는 직원 만 인증해야하는 공용 사이트의 경우 ASP.NET4.0/C# 응용 프로그램에서 작업하고 있습니다. 아이디어는 사이트가 CMS를 보유하여 직원들이 html로 작업하지 않고도 특정 컨텐츠를 변경하고 변경할 수 있도록하는 것입니다.ASP.NET 멤버쉽 - 추가 정보를 추적하기위한 디자인

제 질문은 ASP.NET 멤버 자격 공급자의 디자인과 사용과 관련이 있습니다. 사이트를 기존 데이터베이스로 작업하려고하지 않으므로이 목적을 위해 자체 MembershipProvider를 만들 필요가 없습니다. 그러나 각 사용자는 직원이므로 이름 및 사무실 번호와 같은 추가 정보를 추적하려고합니다. 이 작업을 수행하는 두 가지 명백한 방법을 생각해 볼 수 있습니다.

  1. 기본 SqlMembershipProvider 클래스를 사용하십시오. 따라서 필자는 데이터베이스에 적절한 테이블을 추가하고 저장할 "추가"정보를위한 별도의 테이블을 만들어야합니다. 이것은 사실 asp.net 할당 된 userID를 employee 테이블의 기본 키로 사용할 것이기 때문에 사용자 테이블에 수직 파티션을 효과적으로 만듭니다. "추가"정보를 검색하려면 제공자에게 현재 사용자에 대한 정보를 요청하고 다른 것을 알고 싶다면 데이터베이스를 다시 쿼리 할 수 ​​있습니다.

  2. 모든 직원 정보 (로그인 및 암호 포함)에 대해 하나의 표를 만들고 원하는 기능으로 내 자신의 맞춤 멤버십 공급자 및 MembershipUser 클래스를 만듭니다.

나는 또한 그러한 정보를 저장하는 프로파일의 사용을 고려했습니다, 그러나, 사이트는 공개적으로 직원의 목록을 포함,이 페이지는이 정보의 일부에 액세스해야합니다. 결과적으로이 데이터를 캐시해야하고 프로필에서 제공하는 직렬화 된 필드를 사용하면 문제가 발생할 수 있습니다.

따라서 디자인과 관련하여 ... 사용자와 직원을 구별하고 기본 SqlMembershipProvider 및 관련 테이블을 사용하거나 필요한 정보를 저장하는 자체 사용자 테이블을 작성하는 것이 가장 좋을까요? 해당 정보에 액세스하기위한 내 자신의 MembershipProvider?

+0

당신은 등 인증, 사무실 번호를 자신의 AD를 사용하지 마십시오? – Rup

+0

예, Windows 인증을 사용하고 있습니다. 그들의 업무용 컴퓨터가 반드시 동일한 네트워크에 있지는 않으므로 양식 인증이 더 합리적입니다. – Shaun

답변

3

질문을 올바르게 이해하면 ASP.NET 회원 내에서 추가 사용자 정보를 저장하고 싶습니다. 다음 설치를 사용하여 여러 사이트를 만들었습니다.

  1. aspnet_regsql을 사용하여 기본 .NET 멤버쉽을 설치하십시오.exe 도구
  2. 외래 키를 통해 aspnet_Users 테이블에 연결된 uniqueidentifier (PK) UserID 열이있는 UserProfile 테이블을 만듭니다.
  3. 해당 정보에 액세스하려면 특정 사용자의 UserId가 필요합니다. 자세한 내용은 사용자 정의 테이블을 쿼리하십시오.

Microsoft는이 작업을 수행하는 방법을 excellent post로 작성했습니다.

행운을 빈다!

M

+1

고마움, M. 일반적인 합의가 옵션 1 인 것처럼 보이고, 그 게시물은 그것을 구현할 때 좋은 참고 자료입니다. – Shaun

1

옵션 1을 사용하여 비슷한 작업을하고 있습니다. 저에게 큰 도움이됩니다.

비즈니스 로직에는 사용자를 변경시키는 몇 가지 기능이 있습니다. 내 사용자 테이블이나 멤버쉽 기능을 언제 접할 지 알고 있습니다.

사용자 지정 멤버십 공급자를 사용하면이 유형의 제품에 대해 협상 한 것보다 많은 작업을 수행 할 수 있습니다.

1

SQL 테이블 프로필 공급자 (http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx)가 도움이 될 것입니다. 이 공급자는 직렬화없이 명확한 데이터베이스 테이블에 프로필 정보를 저장하므로 프로필의 강력한 기능을 사용할 수 있으며 동시에 캐싱이나 직렬화에 대해 걱정할 필요가 없습니다. 검색어에 직접 사용할 수 있습니다.

관련 문제