Windows Communication Foundation 驗證服務概觀
更新:2007 年 11 月
Windows Communication Foundation (WCF) 驗證服務可讓您使用 ASP.NET 成員資格,從任何能夠傳送及使用 SOAP 訊息的應用程式來驗證使用者。包括不使用 .NET Framework 的應用程式。因此這些不同應用程式的使用者不需要區分用於每個應用程式的認證。使用者可以在使用任何用戶端應用程式時提供相同的認證,也可以使用該認證登入所有這些應用程式。
此主題包括下列章節:
案例
背景
程式碼範例
類別參考
案例
當您需要從非 ASP.NET Web 應用程式使用 ASP.NET 成員資格來驗證使用者時,您可以存取驗證服務做為 WCF 服務。這可包括主控台應用程式 (Console Application)、Windows Form 應用程式,或不是以 .NET Framework 開發的應用程式。此應用程式必須能傳送和使用 SOAP 訊息。
回到頁首
背景
若要使用服務,您必須將使用者的認證傳遞至驗證服務,該服務會使用 ASP.NET 成員資格來驗證認證。依照預設,驗證服務是藉由將使用者名稱與密碼傳遞至預設的成員資格提供者來進行驗證。
當使用者驗證完成後,ASP.NET 驗證服務會發出一個驗證票證,以做為相容於 ASP.NET 表單驗證的 HTTP Cookie。後續要求將會傳遞該票證至 Web 應用程式,因此使用者不需要每次都提供認證。
驗證服務並不支援在 URL 中內嵌驗證票證,因此,必須在用戶端啟用 Cookies 才能保留驗證票證。
為了安全起見,用戶端應用程式應該一律使用 Secure Sockets Layer (SSL,使用 HTTPS 通訊協定) 來存取驗證服務。如需如何設定 SSL 的詳細資訊,請參閱 Microsoft 網站上的設定 Secure Sockets Layer (IIS 6.0 操作指南) (英文) 和在 IIS 7.0 中設定 Secure Sockets Layer (英文)。
以自訂認證進行驗證
當您需要使用名稱和密碼以外的資訊 (例如識別碼) 來驗證使用者時,可以在驗證要求中加入自訂認證。若要包括額外資訊以進行驗證,則當您呼叫驗證服務的登入方法時,可以在 CustomCredential 參數中傳遞自訂的認證。之後您可以建立 Authenticating 事件的事件處理常式。在處理常式中,您可以讀取認證並自行加以驗證。如需詳細資訊,請參閱HOW TO:自訂使用 WCF 驗證服務時的使用者登入。
以自訂成員資格提供者來進行驗證
您可以為 Authenticating 事件建立事件處理常式,透過非預設的成員資格提供者來驗證使用者名稱和密碼。之後您就能將使用者名稱和密碼傳遞至自訂成員資格提供者的 ValidateUser 方法。如需詳細資訊,請參閱HOW TO:針對 WCF 驗證服務使用非預設的成員資格提供者。
您可以保留非敏感性使用者資訊,將其做為驗證票證的一部分。例如,您可以在票證中儲存使用者喜愛的顏色以供稍後擷取。若要自訂驗證 Cookie,請為驗證服務的 CreatingCookie 事件建立事件處理常式,然後將使用者資料儲存在 FormsAuthenticationTicket 物件的 UserData 屬性中。如需詳細資訊,請參閱HOW TO:自訂來自 WCF 驗證服務的驗證 Cookie。
注意事項: |
---|
絕不要在票證中儲存使用者的密碼或其他敏感性資料。 |
回到頁首
程式碼範例
HOW TO:針對 WCF 驗證服務使用非預設的成員資格提供者
HOW TO:自訂來自 WCF 驗證服務的驗證 Cookie
回到頁首
類別參考
下表列出 WCF 驗證應用程式服務的主要伺服器類別。
AuthenticationService
提供透過 Web 服務來驗證使用者的方法。AuthenticatingEventArgs
提供 Authenticating 事件的資料。
回到頁首