FormsAuthentication.SignOut 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
브라우저에서 폼 인증 티켓을 제거합니다.
public:
static void SignOut();
public static void SignOut ();
static member SignOut : unit -> unit
Public Shared Sub SignOut ()
예제
다음 코드 예제에서는 메서드를 사용하여 양식 인증 쿠키를 SignOut 지우고 메서드를 사용하여 RedirectToLoginPage 사용자를 로그인 페이지로 리디렉션합니다.
<%@ 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>
설명
메서드는 SignOut 쿠키에서 양식 인증 티켓 정보를 제거하거나 가 인 경우 CookiesSupportedfalse
URL을 제거합니다. 메서드와 함께 RedirectToLoginPage 메서드를 SignOut 사용하여 한 사용자를 로그아웃하고 다른 사용자가 로그인하도록 허용할 수 있습니다.
쿠키리스 모드에서만 실행하거나 인증된 사용자와 익명 사용자를 모두 지원하는 경우 익명 식별자를 제거한 결과로 특별한 비즈니스 논리를 실행해야 하는 경우 로그인 페이지로의 리디렉션을 명시적으로 제어해야 합니다.
경우는 SignOut 메서드를 호출 하 여 애플리케이션의 로그인 페이지로 이동 됩니다는 Redirect 메서드를 endResponse
매개 변수 설정 false
. 리디렉션은 현재 페이지 실행이 완료될 때까지 수행되지 않으므로 추가 코드를 실행할 수 있습니다. 코드에 다른 페이지에 대 한 명시적 리디렉션이 없으면 사용자는 애플리케이션의 구성 파일에 구성 된 로그인 페이지로 리디렉션됩니다.
메서드를 호출하면 SignOut 양식 인증 쿠키만 제거됩니다. 웹 서버는 나중에 비교하기 위해 유효하고 만료된 인증 티켓을 저장하지 않습니다. 악의적인 사용자가 유효한 양식 인증 쿠키를 가져오는 경우 사이트가 재생 공격에 취약해집니다. 양식 인증 쿠키를 사용할 때 보안을 향상하려면 다음을 수행해야 합니다.
속성을
false
로 설정하여 양식 인증 쿠키에 절대 만료를 SlidingExpiration 사용합니다. 이렇게 하면 하이재킹된 쿠키를 재생할 수 있는 창이 제한됩니다.SSL(Secure Sockets Layer)을 통해서만 속성을
true
로 설정하고 RequireSSL SSL에서 전체 웹 사이트를 실행하여 인증 쿠키를 발급하고 수락합니다. RequireSSL 속성을true
로 설정하면 ASP.NET 비 SSL 연결을 통해 브라우저에 인증 쿠키를 보내지 않습니다. 그러나 클라이언트는 쿠키의 보안 설정을 준수하지 않을 수 있습니다. 즉, 클라이언트는 비 SSL 연결을 통해 양식 인증 쿠키를 보내 하이재킹에 취약할 수 있습니다. SSL에서 전체 웹 사이트를 실행하여 클라이언트가 양식 인증 쿠키를 지우기에서 보내지 못하도록 방지할 수 있습니다.서버에서 영구 스토리지를 사용 하 여 시 사용자가 웹 사이트에서 로그를 기록 하 고와 사용 하 여 애플리케이션 이벤트 같은 PostAuthenticateRequest 폼 인증을 사용 하 여 현재 사용자 인증 되었는지 여부를 결정 하는 이벤트입니다. 사용자가 폼 인증으로 인증되고 영구 스토리지에 있는 정보에 해당 사용자가 로그아웃되었음이 표시되면 인증 쿠키를 즉시 지우고 브라우저를 로그인 페이지로 다시 리디렉션하세요. 로그인에 성공하면 사용자가 로그인했음을 반영하도록 스토리지를 업데이트합니다. 이 메서드를 사용 하면 애플리케이션이 사용자의 로그인 상태를 추적 해야 하 고 유휴 사용자를 로그 아웃을 강제 적용 해야 합니다.
적용 대상
추가 정보
.NET