2009-01-07 111 views
2

我寫了一個使用自定義數據庫模式存儲成員的自定義MembershipProvider,但我無法確定如何部署提供程序。我的目標服務器正在運行IIS7,並且我可以導航到一個用於添加.NET用戶提供程序的對話框,但不是允許我選擇包含提供程序&然後該類的程序集,它提供了一個帶有幾個MS書面提供者。如何部署ASP.net自定義MembershipProvider?

我是否需要將我的程序集放在特定的位置,以便我的MembershipProvider類被IIS發現?如果是這樣,那麼.dll需要去哪裏?否則,如何告訴ASP.Net使用我的MembershipProvider?我見過的每個示例都只是引用完全限定的類名,但沒有提及如何部署文件。

回答

8

如果您查看應用程序的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> 

providers元素允許您註冊多個提供者以供選擇。另一個功能是,您可以清除註冊在機器上其他配置文件中的成員資格提供商。這可以使配置您的應用程序稍後更容易出錯。爲此,請在列表中的第一個成員資格提供者(<元素)之前添加<清除/ >元素。

<system.web> 
    ... 
    <membership defaultProvider="MembershipProvider1"> 
     <providers> 
      <clear /> 
      <add name="MembershipProvider1" ... /> 
      <add name="MembershipProvider2" ... /> 
     </providers> 
    </membership> 
    ... 
</system.web> 

如果你只想使用IIS管理器來註冊多個Web應用程序相同的供應商,您將需要把該組件在GAC和提供程序添加到計算機的配置文件,而不是一個。部署單個應用程序時,這通常只會帶來很少的好處。

+0

您可能還想在。它將擺脫繼承的其他成員資格提供程序。 – 2009-01-08 00:19:20

相關問題