Bagikan melalui


FormsAuthentication.SignOut Metode

Definisi

Menghapus tiket autentikasi formulir dari browser.

public:
 static void SignOut();
public static void SignOut ();
static member SignOut : unit -> unit
Public Shared Sub SignOut ()

Contoh

Contoh kode berikut menghapus cookie autentikasi formulir menggunakan SignOut metode dan mengalihkan pengguna ke halaman masuk menggunakan RedirectToLoginPage metode .

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void LoginLink_OnClick(object sender, EventArgs args)
{
  FormsAuthentication.SignOut();
  FormsAuthentication.RedirectToLoginPage();
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

<form id="form1" runat="server">
Welcome <b><%=User.Identity.Name%></b>. Not <b><%=User.Identity.Name%></b>? 
Click <asp:LinkButton id="LoginLink" Text="here" 
                      OnClick="LoginLink_OnClick" runat="server" />
to sign in.

<!-- Page Contents -->

</form>



</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub LoginLink_OnClick(sender As Object, args As EventArgs)
  FormsAuthentication.SignOut()
  FormsAuthentication.RedirectToLoginPage()
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

<form id="form1" runat="server">
Welcome <b><%=User.Identity.Name%></b>. Not <b><%=User.Identity.Name%></b>? 
Click <asp:LinkButton id="LoginLink" Text="here" 
                      OnClick="LoginLink_OnClick" runat="server" />
to sign in.

<!-- Page Contents -->

</form>



</body>
</html>

Keterangan

Metode menghapus SignOut informasi tiket autentikasi formulir dari cookie atau URL jika CookiesSupported adalah false. Anda dapat menggunakan metode ini SignOut bersama dengan RedirectToLoginPage metode untuk mengeluarkan satu pengguna dan memungkinkan pengguna lain untuk masuk.

Jika Anda menjalankan secara eksklusif dalam mode tanpa cookie, atau jika Anda mendukung pengguna yang diautentikasi dan anonim, Anda harus secara eksplisit mengontrol pengalihan ke halaman masuk jika Anda memerlukan logika bisnis khusus untuk dijalankan sebagai akibat dari menghapus pengidentifikasi anonim.

Ketika metode dipanggil SignOut , pengalihan ke halaman masuk aplikasi dibuat dengan memanggil Redirect metode dengan parameter yang endResponse diatur ke false. Pengalihan tidak berlangsung sampai halaman saat ini selesai dijalankan, sehingga kode tambahan dapat dijalankan. Jika kode tidak berisi pengalihan eksplisit ke halaman lain, pengguna dialihkan ke halaman masuk yang dikonfigurasi dalam file konfigurasi aplikasi.

Memanggil SignOut metode hanya menghapus cookie autentikasi formulir. Server Web tidak menyimpan tiket autentikasi yang valid dan kedaluwarsa untuk perbandingan nanti. Hal ini membuat situs Anda rentan terhadap serangan pemutaran ulang jika pengguna jahat mendapatkan cookie autentikasi formulir yang valid. Untuk meningkatkan keamanan saat menggunakan cookie autentikasi formulir, Anda harus melakukan hal berikut:

  • Gunakan kedaluwarsa absolut untuk cookie autentikasi formulir dengan mengatur SlidingExpiration properti ke false. Ini membatasi jendela di mana cookie yang dibajak dapat diputar ulang.

  • Hanya masalah dan terima cookie autentikasi melalui Secure Sockets Layer (SSL), dengan mengatur RequireSSL properti ke true dan dengan menjalankan seluruh situs Web di bawah SSL. RequireSSL Mengatur properti untuk true memastikan bahwa ASP.NET tidak akan pernah mengirim cookie autentikasi ke browser melalui koneksi non-SSL; namun, klien mungkin tidak menghormati pengaturan aman pada cookie. Ini berarti klien mungkin mengirim cookie autentikasi formulir melalui koneksi non-SSL, sehingga membuatnya rentan terhadap pembajakan. Anda dapat mencegah klien mengirim cookie autentikasi formulir di bersihkan dengan menjalankan seluruh situs Web di bawah SSL.

  • Gunakan penyimpanan persisten di server untuk merekam ketika pengguna keluar dari situs Web, lalu gunakan peristiwa aplikasi seperti PostAuthenticateRequest peristiwa untuk menentukan apakah pengguna saat ini diautentikasi dengan autentikasi formulir. Jika pengguna diautentikasi dengan autentikasi formulir, dan jika informasi dalam penyimpanan persisten menunjukkan pengguna keluar, segera hapus cookie autentikasi dan alihkan browser kembali ke halaman masuk. Setelah berhasil masuk, perbarui penyimpanan untuk mencerminkan bahwa pengguna masuk. Saat Anda menggunakan metode ini, aplikasi Anda harus melacak status pengguna yang masuk, dan harus memaksa pengguna yang tidak aktif untuk keluar.

Berlaku untuk

Lihat juga