ClientFormsAuthenticationMembershipProvider.Logout Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выходит из системы пользователя.
public:
void Logout();
public void Logout ();
member this.Logout : unit -> unit
Public Sub Logout ()
Исключения
Значение свойства IsOfflinefalse
, и поставщик членства не может получить доступ к службе проверки подлинности.
Примеры
В следующем примере кода показано, как использовать этот метод для выхода пользователя.
private void logoutButton_Click(object sender, EventArgs e)
{
SaveSettings();
ClientFormsAuthenticationMembershipProvider authProvider =
(ClientFormsAuthenticationMembershipProvider)
System.Web.Security.Membership.Provider;
try
{
authProvider.Logout();
}
catch (WebException)
{
MessageBox.Show("Unable to access the authentication service." +
Environment.NewLine + "Logging off locally only.",
"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
ConnectivityStatus.IsOffline = true;
authProvider.Logout();
ConnectivityStatus.IsOffline = false;
}
Application.Restart();
}
Private Sub logoutButton_Click(ByVal sender As Object, _
ByVal e As EventArgs) Handles logoutButton.Click
SaveSettings()
Dim authProvider As ClientFormsAuthenticationMembershipProvider = _
CType(System.Web.Security.Membership.Provider, _
ClientFormsAuthenticationMembershipProvider)
Try
authProvider.Logout()
Catch ex As WebException
MessageBox.Show("Unable to access the authentication service." & _
Environment.NewLine & "Logging off locally only.", _
"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
ConnectivityStatus.IsOffline = True
authProvider.Logout()
ConnectivityStatus.IsOffline = False
End Try
Application.Restart()
End Sub
Комментарии
Метод Logout очищает все файлы cookie проверки подлинности из кэша файлов cookie и сбрасывает свойство static
Thread.CurrentPrincipal в объект WindowsPrincipal, содержащий текущий WindowsIdentity.
После вызова этого метода текущий пользователь больше не проходит проверку подлинности для служб клиентских приложений. Это означает, что нельзя извлекать роли с помощью класса ClientRoleProvider и параметров с помощью класса ClientSettingsProvider. Однако, поскольку у пользователя может быть допустимое удостоверение Windows, вы по-прежнему можете получить true
значение из кода, например из следующего: Thread.CurrentPrincipal.Identity.IsAuthenticated
. Чтобы определить, выполняется ли проверка подлинности пользователя для служб клиентских приложений, убедитесь, что значение свойства IdentityIPrincipal, полученное через свойство static
CurrentPrincipal, является ссылкой на ClientFormsIdentity. Затем проверьте свойство ClientFormsIdentity.IsAuthenticated.
Чтобы повторно выполнить проверку подлинности текущего пользователя, вызовите метод ClientFormsAuthenticationMembershipProvider.ValidateUser или метод static
Membership.ValidateUser.