문제

나는 멤버를 저장하기 위해 사용자 정의 데이터베이스 스키마를 사용하는 사용자 정의 멤버쉽 프로보더를 작성했지만 공급자를 배포하는 방법을 알아내는 데 어려움이 있습니다. 내 대상 서버가 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에 어셈블리를 넣고 공급자를 대신 머신 구성 파일 중 하나에 추가해야합니다. 이것은 일반적으로 단일 응용 프로그램을 배포 할 때 거의 이점이 거의 없습니다.

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