ClientFormsIdentity.RevalidateUser Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Ö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, uzak rollere veya Web ayarları hizmetlerine erişmek için kullanıcının yeniden doğrulanması gerekir. Uygulamanızı kullanıcıyı otomatik olarak yeniden doğrulamaya 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ırdığınızda, yöntemini çağırarak kullanıcıyı program aracılığıyla yeniden doğrulamanız RevalidateUser gerekir. 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ı gösteremez. Yeniden doğrulama, örneğin sunucuda kullanıcı kimlik bilgileri değiştiyse 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin