ASP.NET Custom Memberhipprovider를 어떻게 배포합니까?
-
05-07-2019 - |
문제
나는 멤버를 저장하기 위해 사용자 정의 데이터베이스 스키마를 사용하는 사용자 정의 멤버쉽 프로보더를 작성했지만 공급자를 배포하는 방법을 알아내는 데 어려움이 있습니다. 내 대상 서버가 IIS7을 실행 중이며 .NET 사용자 제공 업체를 추가하는 대화 상자로 이동할 수 있지만 제공자가 포함 된 어셈블리를 선택한 다음 클래스를 선택할 수 있도록 하락을 제공합니다. MS 서면 제공 업체 몇 명.
IIS에 의해 멤버십 전문가 클래스가 발견되도록 특정 위치에 어셈블리를 삭제해야합니까? 그렇다면 .dll은 어디로 가야합니까? 그렇지 않으면 ASP.NET에게 내 멤버십 프로보더를 사용하도록 지시하는 방법은 무엇입니까? 내가 본 모든 예는 단순히 자격을 갖춘 클래스 이름을 참조하지만 파일을 배포하는 방법에 대해서는 언급하지 않습니다.
해결책
응용 프로그램을 위해 web.config 파일을 보면 System.Web라는 섹션이 있어야합니다. 그 안에는 제공자 목록이있는 멤버십 요소가 있습니다. 제공자를 추가하고 기본 제공 업체를 설정할 수 있어야합니다. 멤버십 제공 업체가 이러한 방식으로 등록되면 IIS에서 해당 응용 프로그램의 기본값으로 선택할 수 있어야합니다.
<system.web>
...
<membership defaultProvider="MyMembershipProvider"
userIsOnlineTimeWindow="15">
<providers>
<add name="MyMembershipProvider"
type="Common.Auth.MyMembershipProvider, Common"
connectionStringName="MyAuthDBConnectionString"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
writeExceptionsToEventLog="false" />
</providers>
</membership>
...
</system.web>
제공자 요소를 사용하면 여러 제공 업체를 등록 할 수 있습니다. 또 다른 기능은 컴퓨터의 다른 구성 파일에 등록 된 멤버십 제공 업체를 지울 수 있다는 것입니다. 이로 인해 응용 프로그램 구성이 나중에 오류가 적게 발생할 수 있습니다. 그렇게하려면 추가하십시오u003Cclear/> 첫 번째 멤버십 제공 업체 (Theu003Cadd/> 요소) 목록에.
<system.web>
...
<membership defaultProvider="MembershipProvider1">
<providers>
<clear />
<add name="MembershipProvider1" ... />
<add name="MembershipProvider2" ... />
</providers>
</membership>
...
</system.web>
IIS 관리자 만 사용하는 여러 웹 응용 프로그램으로 동일한 공급자를 등록하려면 GAC에 어셈블리를 넣고 공급자를 대신 머신 구성 파일 중 하나에 추가해야합니다. 이것은 일반적으로 단일 응용 프로그램을 배포 할 때 거의 이점이 거의 없습니다.