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
Poniższy przykładowy kod pokazuje, jak używać tej klasy do dyskretnego reaktywowania użytkownika, gdy aplikacja opuszcza 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 ustawia 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 jest przeznaczona RevalidateUser tylko dla wygody. Ponieważ nie ma wartości zwracanej, nie może wskazywać, czy zmiana nie powiodła się. Na przykład zmiana poświadczeń użytkownika na serwerze może zakończyć się niepowodzeniem. W takim przypadku możesz dołączyć kod, który jawnie weryfikuje użytkowników po niepomyślnie wywołaniu usługi. Aby uzyskać więcej informacji, zobacz sekcję Uzyskiwanie dostępu do ustawień sieci Web w przewodniku: 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 pobranej IPrincipalstatic
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 uwierzytelniony dla usług aplikacji klienckich, należy również potwierdzić, że IIdentity.AuthenticationType wartość właściwości to "ClientForms".
Należy użyć jawnego ClientFormsIdentity odwołania, aby wywołać metodę RevalidateUser , która nie jest zdefiniowana IIdentity przez interfejs.
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 używanego 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 bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
RevalidateUser() |
Uwierzytelnia użytkownika w trybie dyskretnym 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