FormsAuthentication.SignOut Yöntem

Tanım

Forms-authentication biletini tarayıcıdan kaldırır.

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

Örnekler

Aşağıdaki kod örneği, yöntemini kullanarak SignOut forms-authentication tanımlama bilgisini temizler ve yöntemini kullanarak RedirectToLoginPage kullanıcıyı oturum açma sayfasına yönlendirir.

<%@ 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>

Açıklamalar

yöntemi, SignOut tanımlama bilgisinden veya varsa CookiesSupportedfalseURL'den forms-authentication bilet bilgilerini kaldırır. Bir kullanıcının oturumunu kapatıp farklı bir kullanıcının oturum açmasına izin vermek için yöntemini yöntemiyle RedirectToLoginPage birlikte kullanabilirsinizSignOut.

Yalnızca tanımlama bilgisi olmayan modda çalıştırıyorsanız veya hem kimliği doğrulanmış hem de anonim kullanıcıları destekliyorsanız, anonim tanımlayıcıyı kaldırmanın bir sonucu olarak yürütülmesi için özel iş mantığına ihtiyacınız varsa oturum açma sayfasına yeniden yönlendirmeyi açıkça denetlemeniz gerekir.

SignOut yöntemi çağrıldığında, parametresi olarak ayarlanmış falseşekilde yöntemi endResponse çağrılarak Redirect uygulamanın oturum açma sayfasına yeniden yönlendirme yapılır. Geçerli sayfanın yürütülmesi tamamlanana kadar yeniden yönlendirme gerçekleşmez, bu nedenle ek kod çalıştırılabilir. Kod başka bir sayfaya açık bir yeniden yönlendirme içermiyorsa, kullanıcı uygulamanın yapılandırma dosyasında yapılandırılan oturum açma sayfasına yönlendirilir.

yöntemini çağırmak SignOut yalnızca form kimlik doğrulaması tanımlama bilgisini kaldırır. Web sunucusu, daha sonra karşılaştırma için geçerli ve süresi dolmuş kimlik doğrulama biletlerini depolamaz. Bu, kötü amaçlı bir kullanıcı geçerli bir form kimlik doğrulaması tanımlama bilgisi alırsa sitenizi yeniden yürütme saldırısına karşı savunmasız hale getirir. Form kimlik doğrulama tanımlama bilgisi kullanırken güvenliği artırmak için aşağıdakileri yapmalısınız:

  • özelliğini falseolarak ayarlayarak SlidingExpiration form kimlik doğrulaması tanımlama bilgileri için mutlak süre sonu kullanın. Bu, ele geçirilen bir tanımlama bilgisinin yeniden oynatılabildiği pencereyi sınırlar.

  • Özelliği true olarak ayarlayarak RequireSSL ve Web sitesinin tamamını SSL altında çalıştırarak yalnızca Güvenli Yuva Katmanı (SSL) üzerinden kimlik doğrulama tanımlama bilgilerini verin ve kabul edin. özelliğinin RequireSSLtrue ayarlanması, ASP.NET SSL olmayan bir bağlantı üzerinden tarayıcıya hiçbir zaman kimlik doğrulama tanımlama bilgisi göndermemesini sağlar; ancak istemci, tanımlama bilgisinde güvenli ayara uymayabilir. Bu, istemcinin SSL olmayan bir bağlantı üzerinden form kimlik doğrulama tanımlama bilgisini gönderebileceği ve bu nedenle ele geçirilemez durumda bırakabileceği anlamına gelir. Bir istemcinin, Web sitesinin tamamını SSL altında çalıştırarak form kimlik doğrulama tanımlama bilgisini açıkça göndermesini engelleyebilirsiniz.

  • Bir kullanıcı Web sitesinde oturum açtığında kaydetmek için sunucuda kalıcı depolamayı kullanın ve ardından geçerli kullanıcının form kimlik doğrulamasıyla kimlik doğrulaması yapılıp yapılmadığını belirlemek için olay gibi PostAuthenticateRequest bir uygulama olayı kullanın. Kullanıcının forms kimlik doğrulamasıyla kimliği doğrulandıysa ve kalıcı depolamadaki bilgiler kullanıcının oturumunun kapatıldığını gösteriyorsa, kimlik doğrulama tanımlama bilgisini hemen temizleyin ve tarayıcıyı oturum açma sayfasına geri yönlendirin. Başarılı bir oturum açma işleminin ardından, kullanıcının oturum açtığını yansıtacak şekilde depolama alanını güncelleştirin. Bu yöntemi kullandığınızda, uygulamanızın kullanıcının oturum açma durumunu izlemesi ve boştaki kullanıcıları oturumu kapatmaya zorlaması gerekir.

Şunlara uygulanır

Ayrıca bkz.