폼 인증 유틸리티
업데이트: 2007년 11월
FormsAuthentication 클래스의 정적 메서드를 사용하여 폼 인증을 관리할 수 있습니다. 다음 표에는 메서드 목록이 나와 있습니다.
메서드 |
설명 |
---|---|
제공된 자격 증명이 지정되는, 구성된 자격 증명 저장소의 자격 증명이 유효한지 확인합니다. |
|
HTTP 쿠키에서 가져온 암호화된 인증 티켓이 제공된 경우 FormsAuthenticationTicket 클래스의 인스턴스를 반환합니다. |
|
FormsAuthenticationTicket이 제공된 경우 HTTP 쿠키에 적합한 암호화된 인증 티켓을 포함하는 문자열을 만듭니다. |
|
암호화된 인증 쿠키를 HttpCookie 인스턴스로 가져옵니다. 이 쿠키는 Cookies 컬렉션에 추가되지 않습니다. |
|
로그온 페이지로 리디렉션되는 결과를 발생시킨 요청의 리디렉션 URL을 반환합니다. |
|
해시 종류를 식별하는 문자열과 암호가 제공된 경우 구성 파일에 저장하는 데 적합한 해시 암호를 만듭니다. |
|
현재 응용 프로그램의 구성 설정을 읽고 쿠키 값과 암호화 값을 가져와 FormsAuthentication 클래스를 초기화합니다. |
|
인증된 사용자를 처음에 요청한 URL로 리디렉션합니다. |
|
FormsAuthenticationTicket에 대한 상대(sliding) 만료를 업데이트합니다. |
|
인증 티켓을 만들어서 보내는 응답의 쿠키 컬렉션에 추가합니다. |
|
인증 쿠키 또는 URL 텍스트를 빈 값으로 설정하여 인증 티켓을 제거합니다. 영속적인 쿠키와 세션 쿠키가 모두 제거됩니다. |
다음 표에는 폼 인증 티켓을 관리하는 데 유용한 속성 목록이 나와 있습니다.
속성 |
설명 |
---|---|
현재 응용 프로그램의 쿠키 이름을 가져옵니다. |
|
현재 응용 프로그램의 쿠키 경로를 가져옵니다. |
|
응용 프로그램이 쿠키 없는 폼 인증을 지원하도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다. |
|
쿠키 없는 폼 인증에 대해 응용 프로그램이 구성되어 있는지 여부를 나타내는 값을 가져옵니다. |
|
폼 인증 쿠키의 도메인 값을 가져옵니다. |
|
리디렉션 URL이 지정되지 않은 경우 폼 인증이 리디렉션되는 대상 URL을 가져옵니다. |
|
폼 인증이 리디렉션되는 대상 로그온 페이지의 URL을 가져옵니다. |
|
SSL(Secure Sockets Layer)을 사용하여 쿠키를 전송해야 하는지 여부를 나타내는 값을 가져옵니다. |
|
상대(sliding) 만료를 사용하는지 여부를 나타내는 값을 가져옵니다. |
|
폼 인증 티켓이 쿠키에 저장되어 있지 않은 경우 인증된 사용자를 다른 웹 응용 프로그램의 URL로 리디렉션할 수 있는지 여부를 나타내는 값을 가져옵니다. |
FormsAuthentication 클래스의 메서드를 사용하여 폼 인증의 동작 방식을 사용자 지정할 수 있습니다. 또한 로그온 페이지 처리기에서 이러한 메서드를 사용하면 리디렉션 코드를 명시적으로 작성할 필요가 없습니다. 다음 코드 예제에서는 사용자를 인증하고 요청된 페이지로 리디렉션하는 ASP.NET 웹 페이지를 보여 줍니다.
<html>
<head>
<script language="VB" runat=server>
Sub SubmitBtn_Click(Source As Object, e As EventArgs)
' Try to authenticate credentials supplied by user.
If FormsAuthentication.Authenticate _
(UserName.Value, UserPassword.Value) Then
Dim ticket As New FormsAuthenticationTicket _
(UserName.Value, False, 5000)
FormsAuthentication.RedirectFromLoginPage _
(UserName.Value, Persist.Checked)
End If
End Sub
</script>
</head>
<body>
<form method=post runat=server>
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="UserName" runat=server/>
</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>
<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 클래스의 암호화 메서드를 사용하여 인증 티켓을 암호화해야 합니다.