Membership 클래스

정의

사용자 자격 증명의 유효성을 검사하고 사용자 설정을 관리합니다.Validates user credentials and manages user settings. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

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

예제

다음 코드 예제에서는 폼 인증 및 ASP.NET 멤버 자격을 사용 하도록 구성 된 ASP.NET 애플리케이션에 대 한 로그인 페이지를 보여 줍니다.The following code example shows the login page for an ASP.NET application configured to use forms authentication and ASP.NET membership. 제공 된 사용자 자격 증명이 올바르지 않으면, 사용자에 게 메시지가 표시 됩니다.If the supplied user credentials are invalid, a message is displayed to the user. 그렇지 않으면 RedirectFromLoginPage 메서드를 사용 하 여 사용자가 원래 요청 된 URL로 리디렉션됩니다.Otherwise, the user is redirected to the originally requested URL using the RedirectFromLoginPage method.

참고

ASP.NET login 컨트롤 (Login, LoginView, LoginStatus, LoginNamePasswordRecovery)은 사용자에 게 자격 증명을 묻는 메시지를 표시 하 고 멤버 자격 시스템에서 자격 증명의 유효성을 검사 하는 데 필요한 모든 논리를 캡슐화 하며 Membership 클래스를 사용 하 여 프로그래밍 방식으로 검사 하는 대신 사용할 수 있습니다.The ASP.NET login controls (Login, LoginView, LoginStatus, LoginName, and PasswordRecovery) encapsulate virtually all of the logic required to prompt users for credentials and validate the credentials in the membership system and can be used in place of programmatic checking using the Membership class.

중요

이 예제에서는 잠재적 보안 위협을 사용자 입력을 허용 하는 텍스트 상자가 포함 되어 있습니다.This example contains a text box that accepts user input, which is a potential security threat. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. 자세한 내용은 Script Exploits Overview를 참조하세요.For more information, see 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 애플리케이션에서 사용 됩니다.The Membership class is used in ASP.NET applications to validate user credentials and manage user settings such as passwords and email addresses. 합니다 Membership 클래스는 자체적으로 또는 함께에서 사용할 수 있습니다는 FormsAuthentication 사이트나 웹 애플리케이션의 사용자를 인증 하는 것에 대 한 전체 시스템을 만들려면.The Membership class can be used on its own, or in conjunction with the FormsAuthentication to create a complete system for authenticating users of a Web application or site. Login 컨트롤은 Membership 클래스를 캡슐화 하 여 사용자의 유효성을 검사 하는 편리한 메커니즘을 제공 합니다.The Login control encapsulates the Membership class to provide a convenient mechanism for validating users.

참고

ASP.NET의 멤버 자격 기능을 사용 하 여 잘 모르는 경우 Introduction to Membership 계속 하기 전에 합니다.If you are not familiar with the membership features of ASP.NET, see Introduction to Membership before continuing. 멤버 자격에 관련 된 기타 항목 목록을 참조 하세요 멤버 자격을 사용 하 여 사용자 관리합니다.For a list of other topics related to membership, see Managing Users by Using Membership.

Membership 클래스는 다음과 같은 기능을 제공 합니다.The Membership class provides facilities for:

  • 새 사용자를 만드는 중입니다.Creating new users.

  • Microsoft SQL Server 또는 다른 데이터 저장소에 있는 멤버 자격 정보 (사용자 이름, 암호, 전자 메일 주소 및 지원 데이터)를 저장 합니다.Storing membership information (user names, passwords, email addresses, and supporting data) in Microsoft SQL Server or in an alternative data store.

  • 사이트를 방문 하는 사용자를 인증 합니다.Authenticating users who visit your site. 사용자를 프로그래밍 방식으로 인증 하거나, Login 컨트롤을 사용 하 여 코드를 거의 또는 전혀 사용 하지 않는 완전 한 인증 시스템을 만들 수 있습니다.You can authenticate users programmatically, or you can use the Login control to create a complete authentication system that requires little or no code.

  • 암호 관리는 만들기, 변경, 검색 및 다시 설정 하면 포함 등에입니다.Managing passwords, which includes creating, changing, retrieving, and resetting them, and so on. 필요에 따라 암호 질문 및 사용자 암호를 잊어버린 경우에 대 한 암호 재설정 및 검색 요청을 인증에 대 한 대답을 요구 하도록 ASP.NET 멤버 자격을 구성할 수 있습니다.You can optionally configure ASP.NET membership to require a password question and answer to authenticate password reset or retrieval requests for users that have forgotten their password.

ASP.NET 멤버 자격에 대 한 ASP.NET 인증에서 자체 고정 기능 경우에 ASP.NET 역할 관리 사이트에 대 한 권한 부여 서비스와 통합할 수 있습니다.Although ASP.NET membership is a self-standing feature in ASP.NET For authentication, it can be integrated with ASP.NET role management to provide authorization services for your site. ASP.NET 사용자를 사용 하 여 멤버 자격 통합 될 수도 있습니다 System.Web.Profile 개별 사용자에 게 맞게 조정할 수 있는 애플리케이션별 사용자 지정을 제공 합니다.Membership can also be integrated with the ASP.NET user System.Web.Profile to provide application-specific customization that can be tailored to individual users. 자세한 내용은 역할 관리 이해ASP.NET 프로필 속성 개요를 참조 하세요.For details, see Understanding Role Management and ASP.NET Profile Properties Overview.

Membership 클래스는 데이터 소스와 통신 하는 멤버 자격 공급자에 의존 합니다.The Membership class relies on membership providers to communicate with a data source. .NET Framework에는 SqlMembershipProvider, Microsoft SQL Server 데이터베이스에서 사용자 정보를 저장 하는 및 ActiveDirectoryMembershipProvider, Active Directory 또는 Active Directory 애플리케이션 모드 (ADAM) 서버에서 사용자 정보를 저장할 수 있습니다.The .NET Framework includes a SqlMembershipProvider, which stores user information in a Microsoft SQL Server database, and an ActiveDirectoryMembershipProvider, which enables you to store user information on an Active Directory or Active Directory Application Mode (ADAM) server. 또한 Membership 클래스에서 사용할 수 있는 대체 데이터 소스와 통신 하기 위해 사용자 지정 멤버 자격 공급자를 구현할 수 있습니다.You can also implement a custom membership provider to communicate with an alternative data source that can be used by the Membership class. 사용자 지정 멤버 자격 공급자는 MembershipProvider 추상 클래스를 상속 합니다.Custom membership providers inherit the MembershipProvider abstract class. 자세한 내용은 멤버 자격 공급자 구현을 참조 하세요.For more information, see Implementing a Membership Provider.

기본적으로 ASP.NET 멤버 자격 모든 ASP.NET 애플리케이션에 사용 됩니다.By default, ASP.NET membership is enabled for all ASP.NET applications. 기본 멤버 자격 공급자는 SqlMembershipProvider 이며 이름이 AspNetSqlProvider인 컴퓨터 구성에서 지정 됩니다.The default membership provider is the SqlMembershipProvider and is specified in the machine configuration with the name AspNetSqlProvider. SqlMembershipProvider의 기본 인스턴스는 Microsoft SQL Server의 로컬 인스턴스에 연결 하도록 구성 되어 있습니다.The default instance of the SqlMembershipProvider is configured to connect to a local instance of Microsoft SQL Server.

지정 하려면 기본 설정을 수정할 수 있습니다는 SqlMembershipProvider 이외의 AspNetSqlProvider 기본 공급자로 인스턴스 또는 Web.config 파일을 사용 하 여 ASP.NET 애플리케이션에 대 한 기본 공급자로 사용자 지정 공급자의 인스턴스를 지정 합니다.You can modify the default settings to specify a SqlMembershipProvider other than the AspNetSqlProvider instance as the default provider, or specify an instance of a custom provider as the default provider for your ASP.NET application using the Web.config file. Web.config 파일의 멤버 자격 구성 섹션을 사용 하 여 웹 응용 프로그램에 대 한 ASP.NET 멤버 자격 구성을 지정할 수 있습니다.You can specify the ASP.NET membership configuration for your Web application using the membership configuration section in the Web.config file. 멤버 자격 섹션의 providers 하위 섹션을 사용 하 여 기본 공급자 중 하나가 아닌 멤버 자격 공급자를 지정할 수 있습니다.You can use the providers subsection of the membership section to specify a membership provider other than one of the default providers. 예를 들어 다음 멤버 자격 섹션은 현재 응용 프로그램 구성에서 기본 멤버 자격 공급자를 제거 하 고 이름이 AspSqlServer인 SQL Server 인스턴스에 연결 하는 SqlProvider 이름이 지정 된 새 공급자를 추가 합니다.For example, the following membership section removes the default membership providers from the current application configuration and adds a new provider with a name of SqlProvider that connects to a SQL Server instance named AspSqlServer.

<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

응용 프로그램의 이름을 가져오거나 설정합니다.Gets or sets the name of the application.

EnablePasswordReset

현재 멤버 자격 공급자에서 사용자가 암호를 다시 설정하도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the current membership provider is configured to allow users to reset their passwords.

EnablePasswordRetrieval

현재 멤버 자격 공급자에서 사용자가 암호를 검색하도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the current membership provider is configured to allow users to retrieve their passwords.

HashAlgorithmType

암호를 해시하는 데 사용되는 알고리즘의 식별자입니다.The identifier of the algorithm used to hash passwords.

MaxInvalidPasswordAttempts

멤버 자격 사용자가 잠금 처리되기 전에 허용되는 잘못된 암호 또는 암호 대답 시도 수를 가져옵니다.Gets the number of invalid password or password-answer attempts allowed before the membership user is locked out.

MinRequiredNonAlphanumericCharacters

유효한 암호에 나타나야 하는 특수 문자의 최소 수를 가져옵니다.Gets the minimum number of special characters that must be present in a valid password.

MinRequiredPasswordLength

암호에 필요한 최소 길이를 가져옵니다.Gets the minimum length required for a password.

PasswordAttemptWindow

올바른 암호나 암호 대답을 제공하려고 했지만 실패한 연속 횟수를 추적하는 시간 창을 가져옵니다.Gets the time window between which consecutive failed attempts to provide a valid password or password answer are tracked.

PasswordStrengthRegularExpression

암호를 확인하는 데 사용되는 정규식을 가져옵니다.Gets the regular expression used to evaluate a password.

Provider

애플리케이션의 기본 멤버 자격 공급자에 대한 참조를 가져옵니다.Gets a reference to the default membership provider for the application.

Providers

ASP.NET 애플리케이션의 멤버 자격 공급자 컬렉션을 가져옵니다.Gets a collection of the membership providers for the ASP.NET application.

RequiresQuestionAndAnswer

기본 멤버 자격 공급자에서 사용자가 암호 재설정 및 검색을 위해 암호 질문에 대답해야 하는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the default membership provider requires the user to answer a password question for password reset and retrieval.

UserIsOnlineTimeWindow

온라인인 것으로 간주되는 사용자에 대해 마지막 작업 날짜/시간 스탬프 이후의 시간(분)을 지정합니다.Specifies the number of minutes after the last-activity date/time stamp for a user during which the user is considered online.

메서드

CreateUser(String, String)

데이터 저장소에 새 사용자를 추가합니다.Adds a new user to the data store.

CreateUser(String, String, String)

새 사용자를 지정된 이메일 주소와 함께 데이터 저장소에 추가합니다.Adds a new user with a specified email address to the data store.

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

속성 값이 지정된 새 사용자를 데이터 저장소에 추가하고 사용자가 만들어졌음을 나타내거나 사용자 만들기에 실패한 이유를 나타내는 상태 매개 변수를 반환합니다.Adds a new user with specified property values to the data store and returns a status parameter indicating that the user was successfully created or the reason the user creation failed.

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

속성 값이 지정되고 고유한 식별자를 가진 새 사용자를 데이터 저장소에 추가하고 사용자가 만들어졌음을 나타내거나 사용자 만들기에 실패한 이유를 나타내는 상태 매개 변수를 반환합니다.Adds a new user with specified property values and a unique identifier to the data store and returns a status parameter indicating that the user was successfully created or the reason the user creation failed.

DeleteUser(String)

데이터베이스에서 사용자와 사용자 관련 데이터를 모두 삭제합니다.Deletes a user and any related user data from the database.

DeleteUser(String, Boolean)

데이터베이스에서 사용자를 삭제합니다.Deletes a user from the database.

FindUsersByEmail(String)

이메일 주소에 일치시킬 지정된 이메일 주소가 있는 멤버 자격 사용자의 컬렉션을 가져옵니다.Gets a collection of membership users where the email address contains the specified email address to match.

FindUsersByEmail(String, Int32, Int32, Int32)

이메일 주소에 일치시킬 지정된 이메일 주소가 있는 멤버 자격 사용자의 컬렉션을 데이터 페이지에 가져옵니다.Gets a collection of membership users, in a page of data, where the email address contains the specified email address to match.

FindUsersByName(String)

사용자 이름이 지정한 사용자 이름과 일치하는 멤버 자격 사용자의 컬렉션을 가져옵니다.Gets a collection of membership users where the user name contains the specified user name to match.

FindUsersByName(String, Int32, Int32, Int32)

사용자 이름이 지정한 사용자 이름과 일치하는 멤버 자격 사용자의 컬렉션을 데이터 페이지에 가져옵니다.Gets a collection of membership users, in a page of data, where the user name contains the specified user name to match.

GeneratePassword(Int32, Int32)

지정된 길이의 임의 암호를 생성합니다.Generates a random password of the specified length.

GetAllUsers()

데이터베이스의 모든 사용자 컬렉션을 가져옵니다.Gets a collection of all the users in the database.

GetAllUsers(Int32, Int32, Int32)

데이터 페이지에 데이터베이스의 모든 사용자 컬렉션을 가져옵니다.Gets a collection of all the users in the database in pages of data.

GetNumberOfUsersOnline()

현재 애플리케이션에 액세스하는 사용자 수를 가져옵니다.Gets the number of users currently accessing an application.

GetUser()

데이터 소스에서 정보를 가져와 현재 로그온한 멤버 자격 사용자의 마지막 작업 날짜/시간 스탬프를 업데이트합니다.Gets the information from the data source and updates the last-activity date/time stamp for the current logged-on membership user.

GetUser(Boolean)

현재 로그온한 멤버 자격 사용자의 데이터 소스에서 정보를 가져옵니다.Gets the information from the data source for the current logged-on membership user. 지정된 경우 현재 로그온한 멤버 자격 사용자의 마지막 작업 날짜/시간 스탬프를 업데이트합니다.Updates the last-activity date/time stamp for the current logged-on membership user, if specified.

GetUser(Object)

데이터 소스에서 지정한 고유 식별자와 연결된 멤버 자격 사용자의 정보를 가져옵니다.Gets the information from the data source for the membership user associated with the specified unique identifier.

GetUser(Object, Boolean)

데이터 소스에서 지정한 고유 식별자와 연결된 멤버 자격 사용자의 정보를 가져옵니다.Gets the information from the data source for the membership user associated with the specified unique identifier. 지정된 경우 사용자의 마지막 작업 날짜/시간 스탬프를 업데이트합니다.Updates the last-activity date/time stamp for the user, if specified.

GetUser(String)

데이터 소스에서 지정된 멤버 자격 사용자에 대한 정보를 가져옵니다.Gets the information from the data source for the specified membership user.

GetUser(String, Boolean)

데이터 소스에서 지정된 멤버 자격 사용자에 대한 정보를 가져옵니다.Gets the information from the data source for the specified membership user. 지정된 경우 사용자의 마지막 작업 날짜/시간 스탬프를 업데이트합니다.Updates the last-activity date/time stamp for the user, if specified.

GetUserNameByEmail(String)

사용자의 이메일 주소가 지정한 이메일 주소와 일치하는 사용자 이름을 가져옵니다.Gets a user name where the email address for the user matches the specified email address.

UpdateUser(MembershipUser)

지정된 사용자에 대한 정보로 데이터베이스를 업데이트합니다.Updates the database with the information for the specified user.

ValidateUser(String, String)

제공된 사용자 이름과 암호가 유효한지 확인합니다.Verifies that the supplied user name and password are valid.

이벤트

ValidatingPassword

사용자를 만들거나 암호를 변경하거나 암호를 다시 설정할 때 발생합니다.Occurs when a user is created, a password is changed, or a password is reset.

적용 대상

추가 정보