共用方式為


ClientFormsAuthenticationMembershipProvider 類別

定義

使用用戶端應用程式服務啟用窗體驗證。

public ref class ClientFormsAuthenticationMembershipProvider : System::Web::Security::MembershipProvider
public class ClientFormsAuthenticationMembershipProvider : System.Web.Security.MembershipProvider
type ClientFormsAuthenticationMembershipProvider = class
    inherit MembershipProvider
Public Class ClientFormsAuthenticationMembershipProvider
Inherits MembershipProvider
繼承
ClientFormsAuthenticationMembershipProvider

範例

下列範例程式代碼示範如何使用此方法來驗證使用者,方法是使用 IClientFormsAuthenticationCredentialsProvider 實作。

private bool ValidateUsingCredentialsProvider()
{
    bool isAuthorized = false;
    try
    {
        ClientFormsAuthenticationMembershipProvider authProvider =
            System.Web.Security.Membership.Provider as
            ClientFormsAuthenticationMembershipProvider;

        // Call ValidateUser with empty strings in order to display the 
        // login dialog box configured as a credentials provider.
        isAuthorized = authProvider.ValidateUser(String.Empty, String.Empty);
    }
    catch (System.Net.WebException)
    {
        MessageBox.Show("Unable to access the authentication service.",
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    }
    if (!isAuthorized)
    {
        MessageBox.Show("Unable to authenticate.", "Not logged in", 
            MessageBoxButtons.OK, MessageBoxIcon.Error);
        Application.Exit();
    }
    return isAuthorized;
}
Private Function ValidateUsingCredentialsProvider() As Boolean

    Dim isAuthorized As Boolean = False

    Try

        Dim authProvider As ClientFormsAuthenticationMembershipProvider = _
            CType(System.Web.Security.Membership.Provider,  _
            ClientFormsAuthenticationMembershipProvider)

        ' Call ValidateUser with empty strings in order to display the 
        ' login dialog box configured as a credentials provider.
        isAuthorized = authProvider.ValidateUser(String.Empty, String.Empty)

    Catch ex As System.Net.WebException

        MessageBox.Show("Unable to access the authentication service.", _
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)

    End Try

    If Not isAuthorized Then

        MessageBox.Show("Unable to authenticate.", "Not logged in", _
            MessageBoxButtons.OK, MessageBoxIcon.Error)
        Application.Exit()

    End If

    Return isAuthorized

End Function

備註

您可以使用用戶端應用程式服務,使用窗體驗證來驗證使用者。 若要啟用窗體驗證,您可以將應用程式設定為使用 ClientFormsAuthenticationMembershipProvider 類別。

設定之後,您可以呼叫內部呼叫 ClientFormsAuthenticationMembershipProvider.ValidateUser(String, String) 方法的 staticMembership.ValidateUser 方法來驗證使用者。

窗體驗證需要使用者透過應用程式所提供的登入控件來指定其認證。 您可以擷取認證,並將其傳遞至 Membership.ValidateUser 方法。 您也可以傳入空字串或 null 來使用認證提供者。 認證提供者是應用程式組態檔中指定的 IClientFormsAuthenticationCredentialsProvider 實作。 您通常會實作 IClientFormsAuthenticationCredentialsProvider.GetCredentials 方法來顯示登入對話方塊,並傳回填入 ClientFormsAuthenticationCredentials 物件。 使用認證提供者可讓您在多個應用程式之間共用單一登入對話框。

ClientFormsAuthenticationMembershipProvider.ValidateUser 方法會透過 ServiceUri 屬性所指示的登入服務來驗證使用者。 ServiceUri 屬性的值通常會與其他組態值一起從應用程式組態檔擷取。

如果使用者成功驗證,服務提供者會將 staticThread.CurrentPrincipal 屬性設定為新的 ClientRolePrincipal 物件,其中包含包含用戶資訊的新 ClientFormsIdentity 物件。 如果應用程式已設定 ClientRoleProvider,您可以使用 ClientRolePrincipal 物件,從角色服務擷取使用者角色資訊。

您可以透過 staticMembership.Provider 屬性擷取目前 ClientFormsAuthenticationMembershipProvider 實例的參考。 您可以使用成員資格提供者參考直接呼叫 ClientFormsAuthenticationMembershipProvider.ValidateUser 方法。 此外,您將需要成員資格提供者參考來呼叫 Logout 方法,這在 MembershipProvider 基類中無法使用。

您無法使用 ClientFormsAuthenticationMembershipProvider 類別來建立、刪除或修改成員資格資訊。 若要建立、刪除或修改使用者,您必須變更伺服器上的登入服務組態。

建構函式

ClientFormsAuthenticationMembershipProvider()

初始化 ClientFormsAuthenticationMembershipProvider 類別的新實例。

屬性

ApplicationName

這個類別不會使用這個屬性。

Description

取得簡短且易記的描述,適合顯示在系統管理工具或其他使用者介面中。

(繼承來源 ProviderBase)
EnablePasswordReset

這個類別不會使用這個屬性。

EnablePasswordRetrieval

這個類別不會使用這個屬性。

MaxInvalidPasswordAttempts

這個類別不會使用這個屬性。

MinRequiredNonAlphanumericCharacters

這個類別不會使用這個屬性。

MinRequiredPasswordLength

這個類別不會使用這個屬性。

Name

取得組態期間用來參考提供者的易記名稱。

(繼承來源 ProviderBase)
PasswordAttemptWindow

這個類別不會使用這個屬性。

PasswordFormat

這個類別不會使用這個屬性。

PasswordStrengthRegularExpression

這個類別不會使用這個屬性。

RequiresQuestionAndAnswer

這個類別不會使用這個屬性。

RequiresUniqueEmail

這個類別不會使用這個屬性。

ServiceUri

取得或設定驗證服務的 URI。

方法

ChangePassword(String, String, String)

這個類別不會使用這個方法。

ChangePasswordQuestionAndAnswer(String, String, String, String)

這個類別不會使用這個方法。

CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus)

這個類別不會使用這個方法。

DecryptPassword(Byte[])

解密加密的密碼。

(繼承來源 MembershipProvider)
DeleteUser(String, Boolean)

這個類別不會使用這個方法。

EncryptPassword(Byte[])

加密密碼。

(繼承來源 MembershipProvider)
EncryptPassword(Byte[], MembershipPasswordCompatibilityMode)

使用指定的密碼相容性模式加密指定的密碼。

(繼承來源 MembershipProvider)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FindUsersByEmail(String, Int32, Int32, Int32)

這個類別不會使用這個方法。

FindUsersByName(String, Int32, Int32, Int32)

這個類別不會使用這個方法。

GetAllUsers(Int32, Int32, Int32)

這個類別不會使用這個方法。

GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetNumberOfUsersOnline()

這個類別不會使用這個方法。

GetPassword(String, String)

這個類別不會使用這個方法。

GetType()

取得目前實例的 Type

(繼承來源 Object)
GetUser(Object, Boolean)

這個類別不會使用這個方法。

GetUser(String, Boolean)

這個類別不會使用這個方法。

GetUserNameByEmail(String)

這個類別不會使用這個方法。

Initialize(String, NameValueCollection)

初始化提供者。

Logout()

註銷使用者。

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
OnValidatingPassword(ValidatePasswordEventArgs)

如果已定義事件處理程式,則引發 ValidatingPassword 事件。

(繼承來源 MembershipProvider)
ResetPassword(String, String)

這個類別不會使用這個方法。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)
UnlockUser(String)

這個類別不會使用這個方法。

UpdateUser(MembershipUser)

這個類別不會使用這個方法。

ValidateUser(String, String)

使用指定的使用者名稱和密碼來驗證使用者。

ValidateUser(String, String, Boolean)

使用指定的使用者名稱和密碼來驗證使用者,並選擇性地將密碼的哈希儲存在本機數據快取中。

ValidateUser(String, String, String)

使用指定的使用者名稱和密碼,在指定的服務 URI 上驗證使用者。

事件

UserValidated

在驗證用戶時發生。

ValidatingPassword

發生於使用者建立、變更密碼或重設密碼時。

(繼承來源 MembershipProvider)

適用於

另請參閱