Aracılığıyla paylaş


ClientFormsIdentity Sınıf

Tanım

Form kimlik doğrulaması kullanılarak istemci uygulama hizmetleri için kimliği doğrulanmış bir kullanıcı kimliğini temsil eder.

public ref class ClientFormsIdentity : IDisposable, System::Security::Principal::IIdentity
public class ClientFormsIdentity : IDisposable, System.Security.Principal.IIdentity
type ClientFormsIdentity = class
    interface IIdentity
    interface IDisposable
Public Class ClientFormsIdentity
Implements IDisposable, IIdentity
Devralma
ClientFormsIdentity
Uygulamalar

Örnekler

Aşağıdaki örnek kod, uygulama çevrimdışı durumdan çıktığında bir kullanıcıyı sessizce yeniden doğrulamak için bu sınıfın nasıl kullanılacağını gösterir. Bu örnekte, CheckedChanged olay işleyicisi çevrimdışı durumu onay kutusu değeriyle eşleşecek şekilde güncelleştirir. Kullanıcı uygulamayı çevrimiçi duruma ayarlarsa, olay işleyicisi RevalidateUser yöntemini çağırarak kullanıcıyı yeniden doğrulamayı dener. Ancak, kimlik doğrulama sunucusu kullanılamıyorsa, olay işleyicisi uygulamayı çevrimdışı duruma döndürür.

Not

RevalidateUser yöntemi yalnızca kolaylık sağlamak içindir. Dönüş değeri olmadığından, yeniden doğrulamanın başarısız olup olmadığını gösteremez. Örneğin, sunucuda kullanıcı kimlik bilgileri değiştiyse yeniden doğrulama başarısız olabilir. Bu durumda, bir hizmet çağrısı başarısız olduktan sonra kullanıcıları açıkça doğrulayan kod eklemek isteyebilirsiniz. Daha fazla bilgi için, İzlenecek Yol: İstemci Uygulama Hizmetlerikullanma bölümündeki Web Ayarlarına Erişme bölümüne bakın.

private void workOfflineCheckBox_CheckedChanged(
    object sender, EventArgs e)
{
    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked;
    if (!ConnectivityStatus.IsOffline)
    {
        try
        {
            // Silently re-validate the user.
            ((ClientFormsIdentity)
                System.Threading.Thread.CurrentPrincipal.Identity)
                .RevalidateUser();

            // If any settings have been changed locally, save the new
            // new values to the Web settings service.
            SaveSettings();

            // If any settings have not been changed locally, check 
            // the Web settings service for updates. 
            Properties.Settings.Default.Reload();
        }
        catch (System.Net.WebException)
        {
            MessageBox.Show(
                "Unable to access the authentication service. " +
                Environment.NewLine + "Staying in offline mode.",
                "Warning", MessageBoxButtons.OK, 
                MessageBoxIcon.Warning);
            workOfflineCheckBox.Checked = true;
        }
    }
}
Private Sub workOfflineCheckBox_CheckedChanged( _
    ByVal sender As Object, ByVal e As EventArgs) _
    Handles workOfflineCheckBox.CheckedChanged

    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked
    If Not ConnectivityStatus.IsOffline Then

        Try

            ' Silently re-validate the user.
            CType(System.Threading.Thread.CurrentPrincipal.Identity,  _
                ClientFormsIdentity).RevalidateUser()

            ' If any settings have been changed locally, save the new
            ' new values to the Web settings service.
            SaveSettings()

            ' If any settings have not been changed locally, check 
            ' the Web settings service for updates. 
            My.Settings.Reload()

        Catch ex As System.Net.WebException

            MessageBox.Show( _
                "Unable to access the authentication service. " & _
                Environment.NewLine + "Staying in offline mode.", _
                "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            workOfflineCheckBox.Checked = True

        End Try

    End If
End Sub

Açıklamalar

İstemci uygulama hizmetleri özelliği, kimliği doğrulanmış bir kullanıcıyı temsil etmek için bu sınıfı kullanır. Uygulamanızı istemci uygulama hizmetlerini ve form kimlik doğrulamasını kullanacak şekilde yapılandırdığınızda, staticMembership.ValidateUser yöntemini çağırarak kullanıcının kimliğini doğrulayabilirsiniz. Kimlik doğrulamasından sonra, staticThread.CurrentPrincipal özelliği aracılığıyla alınan IPrincipalIdentity özelliği aracılığıyla geçerli ClientFormsIdentity örneğine başvuru alabilirsiniz. Daha fazla bilgi için bkz. İstemci Uygulama Hizmetleri.

Bu sınıfa doğrudan bağımlılıktan kaçınmak için genellikle bir ClientFormsIdentity nesnesine IIdentity başvurusu olarak erişebilirsiniz. Kimliğin IIdentity.IsAuthenticated özelliğini denetleyerek kullanıcının kimliğinin doğrulanıp doğrulanmamış olduğunu belirleyebilirsiniz. Ancak kullanıcının kimliği Windows için doğrulanabilir ancak istemci uygulama hizmetleri için doğrulanamaz. Kullanıcının istemci uygulama hizmetleri için kimliğinin doğrulanıp doğrulanmadığını belirlemek için, IIdentity.AuthenticationType özellik değerinin "ClientForms" olduğunu da onaylamanız gerekir.

IIdentity arabirimi tarafından tanımlanmayan RevalidateUser yöntemini çağırmak için açık bir ClientFormsIdentity başvurusu kullanmanız gerekir.

Oluşturucular

ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer)

ClientFormsIdentity sınıfının yeni bir örneğini başlatır.

Özellikler

AuthenticationCookies

Kimlik doğrulama hizmetinden alınan tanımlama bilgilerinin bir koleksiyonunu alır.

AuthenticationType

Kullanıcının kimliğini doğrulamak için kullanılan kimlik doğrulama türünü alır.

IsAuthenticated

Kullanıcının kimliğinin doğrulanıp doğrulanmadığını belirten bir değer alır.

Name

Kullanıcının adını alır.

Provider

Kullanıcının kimliğini doğrulamak için kullanılan üyelik sağlayıcısını alır.

Yöntemler

Dispose()

ClientFormsIdentitytarafından kullanılan tüm kaynakları serbest bırakır.

Dispose(Boolean)

ClientFormsIdentity tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
RevalidateUser()

Önbelleğe alınmış kimlik bilgilerini kullanarak kullanıcının kimliğini sessizce doğrular.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.