다음을 통해 공유


FormsAuthentication 클래스

정의

웹 애플리케이션의 폼 인증 서비스를 관리합니다. 이 클래스는 상속될 수 없습니다.

public ref class FormsAuthentication sealed
public sealed class FormsAuthentication
type FormsAuthentication = class
Public NotInheritable Class FormsAuthentication
상속
FormsAuthentication

예제

다음 코드 예제에서는 ASP.NET 멤버 자격 공급자를 사용 하 여 폼 인증을 사용 하 고 모든 사용자를 인증 하도록 요구 하는 ASP.NET 애플리케이션에 대 한 Web.config 파일을 보여줍니다.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
  </connectionStrings>
  <system.web>
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
      <providers>
        <add name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="SqlServices"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          passwordFormat="Hashed"
          applicationName="/" />
      </providers>
    </membership>
  </system.web>
</configuration>

다음 코드 예제에서는 폼 인증 및 ASP.NET 멤버 자격을 사용 하는 ASP.NET 애플리케이션에 대 한 로그인 페이지를 보여 줍니다.

중요

이 예제에서는 잠재적 보안 위협을 사용자 입력을 허용 하는 텍스트 상자가 포함 되어 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 Script Exploits Overview를 참조하세요.

<%@ 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 Login_OnClick(object sender, EventArgs args)
{
   if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
   else
     Msg.Text = "Login failed. Please check your user name and password and try again.";
}


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</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 Login_OnClick(sender As Object, args As  EventArgs)

   If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
   Else
     Msg.Text = "Login failed. Please check your user name and password and try again."
   End If

End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>

설명

폼 인증 사용자 및 Windows 인증 하지 않아도 되는 웹 애플리케이션에 대 한 암호 유효성 검사를 사용 합니다. 폼 인증을 사용 하 여 사용자 정보에에서 저장 됩니다는 외부 데이터 원본에서 같은 Membership 데이터베이스 또는 애플리케이션에 대 한 구성 파일입니다. 사용자가 인증되면 인증된 사용자가 각 요청에 자격 증명을 제공할 필요가 없도록 양식 인증은 쿠키 또는 URL에서 인증 티켓을 유지 관리합니다.

폼 인증은 인증 구성 요소의 특성을 로 설정하여 사용하도록 설정 mode 됩니다.Forms 다음 예제와 같이 권한 부여 구성 요소를 사용하여 알 수 없는 사용자의 요청을 거부하여 애플리케이션에 대한 모든 요청에 유효한 사용자 인증 티켓을 포함하도록 요구할 수 있습니다.

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="login.aspx" />
  </authentication>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>

이전 예제에서는 애플리케이션의 일부인 ASP.NET 페이지에 대 한 모든 요청에 폼 인증에서 제공 하는 올바른 사용자 이름이 필요 합니다. 사용자 이름이 없으면 요청이 구성된 LoginUrl로 리디렉션됩니다.

FormsAuthentication 클래스는 사용자를 인증 하는 애플리케이션에서 사용할 수 있는 메서드 및 속성에 대 한 액세스를 제공 합니다. 합니다 RedirectToLoginPage 메서드는 구성 된 브라우저를 리디렉션합니다 LoginUrl 사용자가 애플리케이션에 로그인 합니다. 메서드는 RedirectFromLoginPage 인증된 사용자를 요청된 원래 보호된 URL 또는 로 다시 리디렉션합니다 DefaultUrl. 필요한 경우 양식 인증 티켓을 관리할 수 있는 메서드도 있습니다.

생성자

FormsAuthentication()

FormsAuthentication 클래스의 새 인스턴스를 초기화합니다.

속성

CookieDomain

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

CookieMode

쿠키 없는 폼 인증에 대해 애플리케이션이 구성되어 있는지 여부를 나타내는 값을 가져옵니다.

CookieSameSite

쿠키의 SameSite 특성에 대한 값을 가져오거나 설정합니다.

CookiesSupported

애플리케이션이 쿠키 없는 폼 인증을 지원하도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다.

DefaultUrl

리디렉션 URL을 지정하지 않은 경우 FormsAuthentication 클래스에서 리디렉션할 URL을 가져옵니다.

EnableCrossAppRedirects

인증된 사용자를 다른 웹 애플리케이션의 URL로 리디렉션할 수 있는지 여부를 나타내는 값을 가져옵니다.

FormsCookieName

폼 인증 티켓을 저장하는 데 사용되는 쿠키의 이름을 가져옵니다.

FormsCookiePath

폼 인증 쿠키의 경로를 가져옵니다.

IsEnabled

폼 인증을 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

LoginUrl

FormsAuthentication 클래스에서 리디렉션할 로그인 페이지의 URL을 가져옵니다.

RequireSSL

서버에 반환되기 위해 폼 인증 쿠키에 SSL이 필요한지 여부를 나타내는 값을 가져옵니다.

SlidingExpiration

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

TicketCompatibilityMode

티켓 만료 날짜에 UTC(협정 세계시)를 사용할지 또는 현지 시간을 사용할지 나타내는 값을 가져옵니다.

Timeout

인증 티켓이 만료되기 전의 시간을 가져옵니다.

메서드

Authenticate(String, String)
사용되지 않음.

애플리케이션의 구성 파일에 저장된 자격 증명에 대해 사용자 이름과 암호의 유효성을 검사합니다.

Decrypt(String)

메서드에 전달된 암호화된 폼 인증 티켓을 기반으로 FormsAuthenticationTicket 개체를 만듭니다.

EnableFormsAuthentication(NameValueCollection)

폼 인증을 사용하도록 설정합니다.

Encrypt(FormsAuthenticationTicket)

HTTP 쿠키에서 사용하기에 적합한 암호화된 폼 인증 티켓이 들어 있는 문자열을 만듭니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetAuthCookie(String, Boolean)

주어진 사용자 이름에 대한 인증 쿠키를 만듭니다. 그러면 쿠키가 보내는 응답의 일부로 설정되지 않으므로 애플리케이션에서는 쿠키를 발행하는 방법을 보다 세밀하게 제어할 수 있습니다.

GetAuthCookie(String, Boolean, String)

주어진 사용자 이름에 대한 인증 쿠키를 만듭니다. 이를 통해 쿠키가 나가는 응답의 일부로 설정되지는 않습니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetRedirectUrl(String, Boolean)

로그인 페이지로 리디렉션하도록 만든 원래 요청의 리디렉션 URL을 반환합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
HashPasswordForStoringInConfigFile(String, String)
사용되지 않음.

지정된 암호와 해시 알고리즘을 기반으로 구성 파일에 저장하기에 적합한 해시 암호를 만듭니다.

Initialize()

애플리케이션의 구성 설정을 기반으로 FormsAuthentication 개체를 초기화합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
RedirectFromLoginPage(String, Boolean)

인증된 사용자를 원래 요청된 URL이나 기본 URL로 리디렉션합니다.

RedirectFromLoginPage(String, Boolean, String)

인증된 사용자를 폼 인증 쿠키의 지정된 쿠키 경로를 사용하여 원래 요청된 URL이나 기본 URL로 리디렉션합니다.

RedirectToLoginPage()

브라우저를 로그인 URL로 리디렉션합니다.

RedirectToLoginPage(String)

지정된 쿼리 문자열을 사용하여 브라우저를 로그인 URL로 리디렉션합니다.

RenewTicketIfOld(FormsAuthenticationTicket)

FormsAuthenticationTicket의 발행 날짜와 시간 및 만료 날짜와 시간을 조건부로 업데이트합니다.

SetAuthCookie(String, Boolean)

제공된 사용자 이름에 대한 인증 티켓을 만들어 응답의 쿠키 컬렉션이나 URL(쿠키 없는 인증을 사용하는 경우)에 추가합니다.

SetAuthCookie(String, Boolean, String)

제공된 사용자 이름에 대한 인증 티켓을 만들어 제공된 쿠키 경로를 사용하거나 URL(쿠키 없는 인증을 사용하는 경우)을 사용하여 응답의 쿠키 컬렉션에 추가합니다.

SignOut()

브라우저에서 폼 인증 티켓을 제거합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보