ClientFormsIdentity Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje tożsamość użytkownika uwierzytelnianą dla usług aplikacji klienckich przy użyciu uwierzytelniania formularzy.
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
- Dziedziczenie
-
ClientFormsIdentity
- Implementuje
Przykłady
W poniższym przykładowym kodzie pokazano, jak używać tej klasy do cichego zmiany stanu użytkownika, gdy aplikacja opuści stan offline. W tym przykładzie CheckedChanged program obsługi zdarzeń aktualizuje stan offline, aby był zgodny z wartością pola wyboru. Jeśli użytkownik ustawi aplikację na stan online, program obsługi zdarzeń próbuje ponownie odnowić użytkownika, wywołując metodę RevalidateUser . Jeśli jednak serwer uwierzytelniania jest niedostępny, program obsługi zdarzeń zwraca aplikację do stanu offline.
Uwaga
Metoda RevalidateUser jest tylko dla wygody. Ponieważ nie ma wartości zwracanej, nie może wskazać, czy ponowna walidacja nie powiodła się. Ponowna zmiana może zakończyć się niepowodzeniem, na przykład w przypadku zmiany poświadczeń użytkownika na serwerze. W takim przypadku warto dołączyć kod, który jawnie weryfikuje użytkowników po niepomyślnie wywołaniu usługi. Aby uzyskać więcej informacji, zobacz sekcję Accessing Web Settings (Uzyskiwanie dostępu do ustawień sieci Web) w temacie Walkthrough: Using Client Application Services (Przewodnik: korzystanie z usług aplikacji klienckich).
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
Uwagi
Funkcja usług aplikacji klienckich używa tej klasy do reprezentowania uwierzytelnionego użytkownika. Podczas konfigurowania aplikacji do korzystania z usług aplikacji klienckich i uwierzytelniania formularzy można uwierzytelnić użytkownika, wywołując metodę static
Membership.ValidateUser . Po uwierzytelnieniu można pobrać odwołanie do bieżącego ClientFormsIdentity wystąpienia za pośrednictwem Identity właściwości IPrincipal pobranej static
Thread.CurrentPrincipal za pośrednictwem właściwości . Aby uzyskać więcej informacji, zobacz Usługi aplikacji klienckich.
Zazwyczaj uzyskujesz dostęp do ClientFormsIdentity obiektu jako IIdentity odwołania, aby uniknąć bezpośredniej zależności od tej klasy. Możesz określić, czy użytkownik jest uwierzytelniony, sprawdzając IIdentity.IsAuthenticated właściwość tożsamości. Jednak użytkownik może zostać uwierzytelniony w systemie Windows, ale nie w przypadku usług aplikacji klienckich. Aby określić, czy użytkownik jest uwierzytelniany dla usług aplikacji klienckich, należy również potwierdzić, że IIdentity.AuthenticationType wartość właściwości to "ClientForms".
Aby wywołać metodę RevalidateUser , która nie jest zdefiniowana przez interfejs, należy użyć jawnego ClientFormsIdentityIIdentity odwołania.
Konstruktory
ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer) |
Inicjuje nowe wystąpienie klasy ClientFormsIdentity. |
Właściwości
AuthenticationCookies |
Pobiera kolekcję plików cookie pobranych z usługi uwierzytelniania. |
AuthenticationType |
Pobiera typ uwierzytelniania używanego do uwierzytelniania użytkownika. |
IsAuthenticated |
Pobiera wartość wskazującą, czy użytkownik został uwierzytelniony. |
Name |
Pobiera nazwę użytkownika. |
Provider |
Pobiera dostawcę członkostwa, który jest używany do uwierzytelniania użytkownika. |
Metody
Dispose() |
Zwalnia wszelkie zasoby używane przez element ClientFormsIdentity. |
Dispose(Boolean) |
Zwalnia zasoby niezarządzane używane przez element ClientFormsIdentity i opcjonalnie zwalnia zasoby zarządzane. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
RevalidateUser() |
Dyskretnie uwierzytelnia użytkownika przy użyciu buforowanych poświadczeń. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Dotyczy
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla