2010-10-04 85 views
1

我看到的每個示例都使用具有userNamePasswordValidationMode的默認成員資格提供程序,但是如果我有自定義成員資格提供程序,是否可以在WCF REST服務的ServiceCredentials中爲userNamePasswordValidationMode指定MembershipProvider?如果可能,最好採用以下路線:您可以使用userNamePasswordValidationMode使用自定義成員資格提供程序嗎?

  1. 創建一個實現成員資格提供程序的自定義成員資格提供程序。

  2. 創建一個實現UserNamePasswordValidator的CustomUserNamePasswordValidator並覆蓋Validate方法。

  3. 在Validate方法中,驗證用戶是否存在於數據庫中。我有

的問題是,如果我在我服務的登錄方法,它是從Web瀏覽器的URL http://test.com/service.svc/login,我怎麼能得到用戶名和密碼調用。假設它的用戶名和密碼可以輸入到網頁中,或者它可以來自智能設備應用程序(android,iphone等)

回答

0

您應該能夠: [HowToUseNonDefaultMembershipProvider] [1]在步驟1該頁面有兩個附加鏈接,第一個顯示如何構建成員資格提供程序類,第二個顯示必要的配置條目。雖然有關指定默認提供的第二個鏈接會談實際上你可以指定任意數量的配置提供者,他們中的一個將恰好是默認:

<system.web> 
    <membership defaultProvider="SqlProvider"> 
     <providers> 
      <clear /> 
      <add name="SqlProvider" 
    type="System.Web.Security.SqlMembershipProvider" 
    connectionStringName="MySqlConnection" 
    applicationName="MyApplication" 
    enablePasswordRetrieval="false" 
    enablePasswordReset="true" 
    requiresQuestionAndAnswer="true" 
    requiresUniqueEmail="true" 
    passwordFormat="Hashed" /> 
      <add name="MyProvider" 
        type="MyCompany.MyNamespace.MyMembershipProvider" /> 
     </providers> 
    </membership> 
</system.web> 
從你上面的鏈接示例代碼

現在可能有在AuthenticationService_Authenticating一種線條像這樣:

e.Authenticated = Membership.Providers["MyProvider"].ValidateUser(e.UserName, e.Password); 

在您的自定義提供類,你會實現的ValidateUser方法。這可能包含驗證用戶名&密碼(傳遞給方法)所必需的任何邏輯。

[1]:http://How:使用非默認成員資格提供WCF的認證服務

+0

史蒂夫,我覺得你的鏈接弄亂。 – Xaisoft 2010-10-06 01:46:11

+0

dang it!這裏是:http://msdn.microsoft.com/en-us/library/bb386455.aspx – 2010-10-06 02:03:07

相關問題