Aracılığıyla paylaş


ClientFormsIdentity.RevalidateUser Yöntem

Tanım

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

public:
 void RevalidateUser();
public void RevalidateUser ();
member this.RevalidateUser : unit -> unit
Public Sub RevalidateUser ()

Örnekler

Aşağıdaki örnek kod, uygulama çevrimdışı durumdan çıktığında bir kullanıcıyı sessizce yeniden doğrulamak için bu yöntemin nasıl kullanılacağını gösterir. Bu örnekte, olay CheckedChanged işleyicisi çevrimdışı durumunu onay kutusu değeriyle eşleşecek şekilde güncelleştirir. Kullanıcı uygulamayı çevrimiçi duruma ayarlarsa, olay işleyicisi 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.

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

Geçerli kullanıcıyı doğrulamak için form kimlik doğrulamasını kullandığınızda, ClientFormsIdentity uygulama çalıştığı sürece sınıf kullanıcı kimlik bilgilerini depolar. Ancak, kullanıcının kimliği yalnızca kimlik doğrulama tanımlama bilgisinin süresi dolana kadar doğrulanır. Tanımlama bilgisinin süresi dolduktan sonra, kullanıcının uzak rollere veya Web ayarları hizmetlerine erişmek için yeniden doğrulanması gerekir. Uygulamanızı kullanıcıyı otomatik olarak yeniden doğru kullanacak şekilde yapılandırmak için Hizmetler için Gelişmiş Ayarlar iletişim kutusunu kullanabilirsiniz. Ancak, uygulamanızı tanımlama bilgisi süre sonunu kabul etmek üzere yapılandırırsanız, yöntemini çağırarak RevalidateUser kullanıcıyı program aracılığıyla yeniden atayabilirsiniz. Uygulama çevrimdışıyken kapatılmış olabileceğinden, bu yöntem çevrimdışı moddan çevrimiçi moda geçerken de yararlıdı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ı belirtemez. Ö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 Hizmetlerini Kullanma bölümündeki Web Ayarlarına Erişme bölümüne bakın.

Şunlara uygulanır

Ayrıca bkz.