Aracılığıyla paylaş


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 ise 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 bilgisiz modda çalışı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 yönlendirmeyi açıkça denetlemeniz gerekir.

SignOut yöntemi çağrıldığında, parametresi olarak ayarlanmış falseyö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 forms kimlik doğrulama 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ğrulama tanımlama bilgisi edinirse sitenizi yeniden yürütme saldırısına karşı savunmasız hale getirir. Form kimlik doğrulaması 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ğrulama tanımlama bilgileri için mutlak süre sonu kullanın. Bu, ele geçirilen bir tanımlama bilgisinin yeniden yürütülebileceğ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 yayımlayıp kabul edin. RequireSSL özelliğitrue, 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 bilgisindeki güvenli ayara uygun olmayabilir. Bu, istemcinin FORMS kimlik doğrulama tanımlama bilgisini SSL olmayan bir bağlantı üzerinden gönderebileceği ve bu nedenle ele geçirilemez hale getirebileceği anlamına gelir. Bir istemcinin, Web sitesinin tamamını SSL altında çalıştırarak form kimlik doğrulama tanımlama bilgisini net bir şekilde 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 kimliğinin doğrulanıp doğrulanmadığını belirlemek için olay gibi PostAuthenticateRequest bir uygulama olayı kullanın. Kullanıcının kimliği Forms kimlik doğrulamasıyla 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.