폼 인증 유틸리티

Visual Studio 2010

업데이트: 2007년 11월

FormsAuthentication 클래스의 정적 메서드를 사용하여 폼 인증을 관리할 수 있습니다. 다음 표에는 메서드 목록이 나와 있습니다.

메서드

설명

Authenticate

제공된 자격 증명이 지정되는, 구성된 자격 증명 저장소의 자격 증명이 유효한지 확인합니다.

Decrypt

HTTP 쿠키에서 가져온 암호화된 인증 티켓이 제공된 경우 FormsAuthenticationTicket 클래스의 인스턴스를 반환합니다.

Encrypt

FormsAuthenticationTicket이 제공된 경우 HTTP 쿠키에 적합한 암호화된 인증 티켓을 포함하는 문자열을 만듭니다.

GetAuthCookie

암호화된 인증 쿠키를 HttpCookie 인스턴스로 가져옵니다. 이 쿠키는 Cookies 컬렉션에 추가되지 않습니다.

GetRedirectUrl

로그온 페이지로 리디렉션되는 결과를 발생시킨 요청의 리디렉션 URL을 반환합니다.

HashPasswordForStoringInConfigFile

해시 종류를 식별하는 문자열과 암호가 제공된 경우 구성 파일에 저장하는 데 적합한 해시 암호를 만듭니다.

Initialize

현재 응용 프로그램의 구성 설정을 읽고 쿠키 값과 암호화 값을 가져와 FormsAuthentication 클래스를 초기화합니다.

RedirectFromLoginPage

인증된 사용자를 처음에 요청한 URL로 리디렉션합니다.

RenewTicketIfOld

FormsAuthenticationTicket에 대한 상대(sliding) 만료를 업데이트합니다.

SetAuthCookie

인증 티켓을 만들어서 보내는 응답의 쿠키 컬렉션에 추가합니다.

SignOut

인증 쿠키 또는 URL 텍스트를 빈 값으로 설정하여 인증 티켓을 제거합니다. 영속적인 쿠키와 세션 쿠키가 모두 제거됩니다.

874sbx60.alert_caution(ko-kr,VS.100).gif중요:
SignOut 메서드는 인증된 브라우저 세션에서 티켓을 제거하지만 응용 프로그램은 인증 티켓을 "스니핑"한 원하지 않는 소스로부터 재생 공격을 받을 수 있습니다. 폼 인증을 사용하여 재생 공격의 위험을 줄이는 데 대한 내용은 SignOut을 참조하십시오.

다음 표에는 폼 인증 티켓을 관리하는 데 유용한 속성 목록이 나와 있습니다.

속성

설명

FormsCookieName

현재 응용 프로그램의 쿠키 이름을 가져옵니다.

FormsCookiePath

현재 응용 프로그램의 쿠키 경로를 가져옵니다.

CookiesSupported

응용 프로그램이 쿠키 없는 폼 인증을 지원하도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다.

CookieMode

쿠키 없는 폼 인증에 대해 응용 프로그램이 구성되어 있는지 여부를 나타내는 값을 가져옵니다.

CookieDomain

폼 인증 쿠키의 도메인 값을 가져옵니다.

DefaultUrl

리디렉션 URL이 지정되지 않은 경우 폼 인증이 리디렉션되는 대상 URL을 가져옵니다.

LoginUrl

폼 인증이 리디렉션되는 대상 로그온 페이지의 URL을 가져옵니다.

RequireSSL

SSL(Secure Sockets Layer)을 사용하여 쿠키를 전송해야 하는지 여부를 나타내는 값을 가져옵니다.

SlidingExpiration

상대(sliding) 만료를 사용하는지 여부를 나타내는 값을 가져옵니다.

EnableCrossAppRedirects

폼 인증 티켓이 쿠키에 저장되어 있지 않은 경우 인증된 사용자를 다른 웹 응용 프로그램의 URL로 리디렉션할 수 있는지 여부를 나타내는 값을 가져옵니다.

FormsAuthentication 클래스의 메서드를 사용하여 폼 인증의 동작 방식을 사용자 지정할 수 있습니다. 또한 로그온 페이지 처리기에서 이러한 메서드를 사용하면 리디렉션 코드를 명시적으로 작성할 필요가 없습니다. 다음 코드 예제에서는 사용자를 인증하고 요청된 페이지로 리디렉션하는 ASP.NET 웹 페이지를 보여 줍니다.

<html>
<head>
<script language="C#" runat=server>
    void SubmitBtn_Click(Object Source, EventArgs e)
    {
        // Try to authenticate credentials supplied by user.
        if (FormsAuthentication.Authenticate(UserName.Value, 
                UserPassword.Value))
        {
            FormsAuthenticationTicket ticket = new 
                FormsAuthenticationTicket(UserName.Value, false, 5000);
                  
            FormsAuthentication.RedirectFromLoginPage(UserName.Value,
                Persist.Checked);
        }
    }
</script>
</head>

<body>

<form method=post runat=server>
    <table>
        <tr>
            <td>Name:</td>
            <td><input type="text" id="UserName" runat=server/></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="password" id="UserPassword" runat=server/>
            </td>
        </tr>
    </table>
    <input type="checkbox" id="Persist" runat=server/>
    <!-- Use persistent cookie. -->
    <br>
    <input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>

HTTP 쿠키 속성을 세밀하게 제어해야 하는 응용 프로그램에서는 사용자 지정 코드를 통해 티켓을 생성하고 리디렉션을 수행할 수 있습니다. 이런 경우에는 FormsAuthentication 클래스의 암호화 메서드를 사용하여 인증 티켓을 암호화해야 합니다.

표시: