다음을 통해 공유


Membership 클래스

정의

사용자 자격 증명의 유효성을 검사하고 사용자 설정을 관리합니다. 이 클래스는 상속될 수 없습니다.

public ref class Membership abstract sealed
public static class Membership
type Membership = class
Public Class Membership
상속
Membership

예제

다음 코드 예제에서는 폼 인증 및 ASP.NET 멤버 자격을 사용 하도록 구성 된 ASP.NET 애플리케이션에 대 한 로그인 페이지를 보여 줍니다. 제공된 사용자 자격 증명이 유효하지 않으면 사용자에게 메시지가 표시됩니다. 그렇지 않으면 사용자가 메서드를 사용하여 원래 요청된 URL로 RedirectFromLoginPage 리디렉션됩니다.

참고

ASP.NET 로그인 컨트롤(Login, , LoginView, LoginStatusLoginName및 )은 사용자에게 자격 증명을 묻는 메시지를 표시하고 PasswordRecovery멤버 자격 증명의 유효성을 검사하는 데 필요한 거의 모든 논리를 캡슐화하며 클래스를 사용하는 Membership 프로그래밍 방식 검사 대신 사용할 수 있습니다.

중요

이 예제에서는 잠재적 보안 위협을 사용자 입력을 허용 하는 텍스트 상자가 포함 되어 있습니다. 기본적으로 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>

설명

Membership 클래스 및 사용자 자격 증명의 유효성을 검사 하 고, 암호 등의 사용자 설정을 관리 하 고, 전자 메일 주소를 ASP.NET 애플리케이션에서 사용 됩니다. 합니다 Membership 클래스는 자체적으로 또는 함께에서 사용할 수 있습니다는 FormsAuthentication 사이트나 웹 애플리케이션의 사용자를 인증 하는 것에 대 한 전체 시스템을 만들려면. 컨트롤은 Login 클래스를 Membership 캡슐화하여 사용자의 유효성을 검사하기 위한 편리한 메커니즘을 제공합니다.

참고

ASP.NET의 멤버 자격 기능을 사용 하 여 잘 모르는 경우 Introduction to Membership 계속 하기 전에 합니다. 멤버 자격에 관련 된 기타 항목 목록을 참조 하세요 멤버 자격을 사용 하 여 사용자 관리합니다.

클래스는 Membership 다음을 위한 기능을 제공합니다.

  • 새 사용자를 만듭니다.

  • Microsoft SQL Server 또는 대체 데이터 저장소에 멤버 자격 정보(사용자 이름, 암호, 이메일 주소 및 지원 데이터)를 저장합니다.

  • 사이트를 방문하는 사용자를 인증합니다. 프로그래밍 방식으로 사용자를 인증하거나 컨트롤을 Login 사용하여 코드가 거의 또는 전혀 필요하지 않은 완전한 인증 시스템을 만들 수 있습니다.

  • 암호를 만들고, 변경하고, 검색하고, 재설정하는 등의 암호를 관리합니다. 필요에 따라 암호를 잊어버린 사용자에 대한 암호 재설정 또는 검색 요청을 인증하기 위해 암호 질문과 답변이 필요하도록 ASP.NET 멤버 자격을 구성할 수 있습니다.

ASP.NET 멤버 자격은 ASP.NET 인증의 자체 기능이지만 ASP.NET 역할 관리와 통합되어 사이트에 대한 권한 부여 서비스를 제공할 수 있습니다. ASP.NET 사용자를 사용 하 여 멤버 자격 통합 될 수도 있습니다 System.Web.Profile 개별 사용자에 게 맞게 조정할 수 있는 애플리케이션별 사용자 지정을 제공 합니다. 자세한 내용은 역할 관리ASP.NET 프로필 속성 개요 이해를 참조하세요.

Membership 클래스는 데이터 소스와 통신 하는 멤버 자격 공급자에 의존 합니다. .NET Framework에는 SqlMembershipProvider, Microsoft SQL Server 데이터베이스에서 사용자 정보를 저장 하는 및 ActiveDirectoryMembershipProvider, Active Directory 또는 Active Directory 애플리케이션 모드 (ADAM) 서버에서 사용자 정보를 저장할 수 있습니다. 클래스에서 사용할 수 있는 대체 데이터 원본과 통신하도록 사용자 지정 멤버 자격 공급자를 Membership 구현할 수도 있습니다. 사용자 지정 멤버 자격 공급자는 추상 클래스를 MembershipProvider 상속합니다. 자세한 내용은 멤버 자격 공급자 구현을 참조하세요.

기본적으로 ASP.NET 멤버 자격 모든 ASP.NET 애플리케이션에 사용 됩니다. 기본 멤버 자격 공급자는 이며 SqlMembershipProvider 라는 이름의 AspNetSqlProvider컴퓨터 구성에 지정 됩니다. 의 SqlMembershipProvider 기본 인스턴스는 Microsoft SQL Server의 로컬 인스턴스에 연결하도록 구성됩니다.

지정 하려면 기본 설정을 수정할 수 있습니다는 SqlMembershipProvider 이외의 AspNetSqlProvider 기본 공급자로 인스턴스 또는 Web.config 파일을 사용 하 여 ASP.NET 애플리케이션에 대 한 기본 공급자로 사용자 지정 공급자의 인스턴스를 지정 합니다. Web.config 파일의 멤버 자격 구성 섹션을 사용하여 웹 애플리케이션에 대한 ASP.NET 멤버 자격 구성을 지정할 수 있습니다. 멤버 자격 섹션의 공급자 하위 섹션을 사용하여 기본 공급자 중 하나 이외의 멤버 자격 공급자를 지정할 수 있습니다. 예를 들어 다음 멤버 자격 섹션에서는 현재 애플리케이션 구성에서 기본 멤버 자격 공급자를 제거하고 라는 AspSqlServerSQL Server 인스턴스에 연결하는 이름을 SqlProvider 가진 새 공급자를 추가합니다.

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

속성

ApplicationName

애플리케이션의 이름을 가져오거나 설정합니다.

EnablePasswordReset

현재 멤버 자격 공급자에서 사용자가 암호를 다시 설정하도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다.

EnablePasswordRetrieval

현재 멤버 자격 공급자에서 사용자가 암호를 검색하도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다.

HashAlgorithmType

암호를 해시하는 데 사용되는 알고리즘의 식별자입니다.

MaxInvalidPasswordAttempts

멤버 자격 사용자가 잠금 처리되기 전에 허용되는 잘못된 암호 또는 암호 대답 시도 수를 가져옵니다.

MinRequiredNonAlphanumericCharacters

유효한 암호에 나타나야 하는 특수 문자의 최소 수를 가져옵니다.

MinRequiredPasswordLength

암호에 필요한 최소 길이를 가져옵니다.

PasswordAttemptWindow

올바른 암호나 암호 대답을 제공하려고 했지만 실패한 연속 횟수를 추적하는 시간 창을 가져옵니다.

PasswordStrengthRegularExpression

암호를 확인하는 데 사용되는 정규식을 가져옵니다.

Provider

애플리케이션의 기본 멤버 자격 공급자에 대한 참조를 가져옵니다.

Providers

ASP.NET 애플리케이션의 멤버 자격 공급자 컬렉션을 가져옵니다.

RequiresQuestionAndAnswer

기본 멤버 자격 공급자에서 사용자가 암호 재설정 및 검색을 위해 암호 질문에 대답해야 하는지 여부를 나타내는 값을 가져옵니다.

UserIsOnlineTimeWindow

온라인인 것으로 간주되는 사용자에 대해 마지막 작업 날짜/시간 스탬프 이후의 시간(분)을 지정합니다.

메서드

CreateUser(String, String)

데이터 저장소에 새 사용자를 추가합니다.

CreateUser(String, String, String)

새 사용자를 지정된 이메일 주소와 함께 데이터 저장소에 추가합니다.

CreateUser(String, String, String, String, String, Boolean, MembershipCreateStatus)

속성 값이 지정된 새 사용자를 데이터 저장소에 추가하고 사용자가 만들어졌음을 나타내거나 사용자 만들기에 실패한 이유를 나타내는 상태 매개 변수를 반환합니다.

CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus)

속성 값이 지정되고 고유한 식별자를 가진 새 사용자를 데이터 저장소에 추가하고 사용자가 만들어졌음을 나타내거나 사용자 만들기에 실패한 이유를 나타내는 상태 매개 변수를 반환합니다.

DeleteUser(String)

데이터베이스에서 사용자와 사용자 관련 데이터를 모두 삭제합니다.

DeleteUser(String, Boolean)

데이터베이스에서 사용자를 삭제합니다.

FindUsersByEmail(String)

이메일 주소에 일치시킬 지정된 이메일 주소가 있는 멤버 자격 사용자의 컬렉션을 가져옵니다.

FindUsersByEmail(String, Int32, Int32, Int32)

이메일 주소에 일치시킬 지정된 이메일 주소가 있는 멤버 자격 사용자의 컬렉션을 데이터 페이지에 가져옵니다.

FindUsersByName(String)

사용자 이름이 지정한 사용자 이름과 일치하는 멤버 자격 사용자의 컬렉션을 가져옵니다.

FindUsersByName(String, Int32, Int32, Int32)

사용자 이름이 지정한 사용자 이름과 일치하는 멤버 자격 사용자의 컬렉션을 데이터 페이지에 가져옵니다.

GeneratePassword(Int32, Int32)

지정한 길이의 임의의 암호를 생성합니다.

GetAllUsers()

데이터베이스의 모든 사용자 컬렉션을 가져옵니다.

GetAllUsers(Int32, Int32, Int32)

데이터 페이지에 데이터베이스의 모든 사용자 컬렉션을 가져옵니다.

GetNumberOfUsersOnline()

현재 애플리케이션에 액세스하는 사용자 수를 가져옵니다.

GetUser()

데이터 소스에서 정보를 가져와 현재 로그온한 멤버 자격 사용자의 마지막 작업 날짜/시간 스탬프를 업데이트합니다.

GetUser(Boolean)

현재 로그온한 멤버 자격 사용자의 데이터 소스에서 정보를 가져옵니다. 지정된 경우 현재 로그온한 멤버 자격 사용자의 마지막 작업 날짜/시간 스탬프를 업데이트합니다.

GetUser(Object)

데이터 소스에서 지정한 고유 식별자와 연결된 멤버 자격 사용자의 정보를 가져옵니다.

GetUser(Object, Boolean)

데이터 소스에서 지정한 고유 식별자와 연결된 멤버 자격 사용자의 정보를 가져옵니다. 지정된 경우 사용자의 마지막 작업 날짜/시간 스탬프를 업데이트합니다.

GetUser(String)

데이터 소스에서 지정된 멤버 자격 사용자의 정보를 가져옵니다.

GetUser(String, Boolean)

데이터 소스에서 지정된 멤버 자격 사용자의 정보를 가져옵니다. 지정된 경우 사용자의 마지막 작업 날짜/시간 스탬프를 업데이트합니다.

GetUserNameByEmail(String)

사용자의 이메일 주소가 지정한 이메일 주소와 일치하는 사용자 이름을 가져옵니다.

UpdateUser(MembershipUser)

지정한 사용자의 정보로 데이터베이스를 업데이트합니다.

ValidateUser(String, String)

제공된 사용자 이름과 암호가 유효한지 확인합니다.

이벤트

ValidatingPassword

사용자를 만들거나 암호를 변경하거나 암호를 다시 설정할 때 발생합니다.

적용 대상

추가 정보