다음을 통해 공유


Roles 클래스

정의

ASP.NET 애플리케이션에서 권한 부여를 확인하기 위해 역할에서 사용자 멤버 자격을 관리합니다. 이 클래스는 상속될 수 없습니다.

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

예제

다음 예제에서는 ASP.NET 멤버 자격 및 ASP.NET 역할 둘 다 사용 하 고 사용 하도록 구성 된 애플리케이션에 대 한 Web.config 파일을 SqlRoleProvider SQL Server 데이터베이스에 멤버 자격 및 역할 정보를 저장 합니다. 폼 인증을 사용 하 여 사용자가 인증 하 고 관리자 역할의 사용자만 애플리케이션에 대 한 액세스를 허용 됩니다.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated Security=SSPI;" />
  </connectionStrings>

  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="login.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>

    <authorization>
      <deny users="?" />
      <allow roles="Administrators" />
      <deny users="*" />
    </authorization>

    <membership defaultProvider="AspNetSqlProvider" userIsOnlineTimeWindow="15">
    </membership>

    <roleManager defaultProvider="SqlProvider"
      enabled="true"
      cacheRolesInCookie="true"
      cookieName=".ASPROLES"
      cookieTimeout="30"
      cookiePath="/"
      cookieRequireSSL="true"
      cookieSlidingExpiration="true"
      cookieProtection="All" >

      <providers>
        <clear />
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlRoleProvider"
          connectionStringName="SqlServices"
          applicationName="SampleApplication" />
        </providers>

    </roleManager>
  </system.web>
</configuration>

다음 코드 예제에서는 사용자가 다른 사용자의 역할을 볼 수 있도록 허용하기 전에 로그온한 사용자가 관리자 역할에 있는지 여부를 프로그래밍 방식으로 확인합니다.

설명

ASP.NET 역할 관리를 사용 하면 사용자의 역할 이라고 하는 그룹을 기반으로 하는 애플리케이션에 대 한 권한 부여를 관리할 수 있습니다. 사용자 역할에 할당 하면 대신 또는 외에, 역할에 따라 웹 애플리케이션의 다른 부분이 나 기능에 대 한 액세스 권한 부여 사용자 이름을 기반으로 지정 제어할 수 있습니다. 예를 들어, 각 역할에 대해 서로 다른 권한을 지정 되어 있는 관리자, 직원, 이사 및 등과 같은 역할이 직원 애플리케이션 있을 수 있습니다.

사용자는 둘 이상의 역할에 속할 수 있습니다. 예를 들어 사이트가 토론 포럼인 경우 일부 사용자는 멤버와 중재자 모두의 역할에 있을 수 있습니다. 사이트에서 서로 다른 권한을 갖도록 각 역할을 정의할 수 있으며, 두 역할 모두에 있는 사용자는 두 가지 권한 집합을 모두 갖게 됩니다.

ASP.NET 애플리케이션에 대한 역할 관리를 사용하도록 설정하려면 다음 예제와 같이 애플리케이션의 Web.config 파일에서 섹션의 system.webroleManager 요소를 사용합니다.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated Security=SSPI;" />
  </connectionStrings>

  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="login.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>

  <roleManager defaultProvider="SqlProvider"
    enabled="true"
    cacheRolesInCookie="true"
    cookieName=".ASPROLES"
    cookieTimeout="30"
    cookiePath="/"
    cookieRequireSSL="false"
    cookieSlidingExpiration="true"
    cookieProtection="All" >
    <providers>
      <add
        name="SqlProvider"
        type="System.Web.Security.SqlRoleProvider"
        connectionStringName="SqlServices"
        applicationName="SampleApplication" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

웹 애플리케이션에 대 한 구성 파일에서 또는 프로그래밍 방식으로 코드에서 권한 부여 규칙을 지정할 수 있습니다. 예를 들어 Web.config 파일의 다음 권한 부여 섹션에서는 사용자가 익명 사용자를 거부하여 로그온한 다음 관리자 역할의 사용자만 액세스할 수 있도록 허용합니다.

<authorization>
  <deny users="?" />
  <allow roles="Administrators" />
  <deny users="*" />
</authorization>

사용 하는 경우는 authorization 애플리케이션의 사용자 역할을 기반으로 하는 권한 부여를 지정 하려면 애플리케이션의 Web.config 파일의 섹션에서 인증된 된 사용자 id를 제공 해야 합니다. Windows 또는 Forms 인증을 사용하여 사용자를 인증할 수 있습니다. 익명 사용자는 역할에 할당할 수 없습니다. 역할은 ASP.NET Membership 클래스와 독립적으로 또는 함께 사용할 수 있습니다.

프로그래밍 방식으로 역할 멤버 자격을 확인 하려면 사용할 수 있습니다는 클래스 또는 Page.User 속성을 사용 하 여 Roles 는 메서드를 사용 하 여 Page.User 속성을 IPrincipal.IsInRoleIsUserInRole 메서드. 프로그래밍 방식으로 역할 멤버 자격을 확인하는 샘플 코드는 이 항목의 예제 섹션을 참조하세요.

Roles 또한 클래스를 사용하면 역할을 만들고 삭제하고 사용자를 역할에서 사용자를 추가하거나 제거할 수 있습니다.

참고

사용 하도록 애플리케이션을 구성한 경우를 WindowsTokenRoleProvider 클래스, 역할 또는 역할 멤버 자격을 수정할 수 없습니다. 클래스는 WindowsTokenRoleProvider Windows 보안 그룹의 멤버 자격만 확인합니다. 이 경우 역할을 ASP.NET 대신 Windows 사용자 계정 관리를 사용하여 그룹을 만들고 삭제하고 그룹 멤버 자격을 관리해야 합니다.

역할 정보를 여러 데이터 원본에 저장할 수 있습니다.

  • 클래스를 WindowsTokenRoleProvider 사용하여 Windows 그룹의 멤버 자격에 따라 역할 정보를 검색할 수 있습니다.

  • 클래스를 사용하여 SqlRoleProvider SQL Server 데이터베이스에 역할 정보를 저장할 수 있습니다.

  • 기존 역할 정보가 있거나 Windows, 권한 부여 저장소 또는 SQL Server 이외의 데이터 원본에서 역할 정보를 저장하고 검색하려는 경우 추상 클래스를 상속 RoleProvider 하는 클래스를 만들어 사용자 지정 역할 공급자를 구현할 수 있습니다. 자세한 내용은 역할 공급자 구현을 참조하세요.

사용자의 브라우저에서 쿠키를 수락하는 경우 해당 사용자의 역할 정보를 사용자의 컴퓨터에 있는 쿠키에 저장할 수 있습니다. 각 페이지 요청에서 ASP.NET 쿠키에서 해당 사용자의 역할 정보를 읽습니다. 데이터 원본과 함께 역할 정보를 검색 하는 데 필요한 통신의 양을 줄여 애플리케이션 성능이 향상 됩니다. 사용자의 역할 정보가 쿠키에 저장하기에 너무 긴 경우 ASP.NET 가장 최근에 사용한 역할 정보만 쿠키에 저장한 다음 필요에 따라 데이터 원본에서 추가 역할 정보를 조회합니다. 사용자의 브라우저에서 쿠키 또는 쿠키를 지원하지 않는 경우 역할 정보는 쿠키에 캐시되지 않습니다.

ASP.NET 역할을 구성할 때 속성을 지정하여 CookieProtectionValue 쿠키에 캐시된 역할 이름의 안정성을 향상시킬 수 있습니다. 기본값 CookieProtectionValueAll쿠키의 역할 이름을 암호화하고 쿠키 콘텐츠가 변경되지 않은지 확인하는 입니다.

속성

ApplicationName

역할 정보를 저장하거나 검색할 애플리케이션의 이름을 가져오거나 설정합니다.

CacheRolesInCookie

현재 사용자의 역할이 쿠키에 캐시되는지 여부를 나타내는 값을 가져옵니다.

CookieName

역할 이름이 캐시되는 쿠키의 이름을 가져옵니다.

CookiePath

캐시된 역할 이름 쿠키에 대한 경로를 가져옵니다.

CookieProtectionValue

쿠키에 캐시된 역할 이름이 보호되는 방법을 나타내는 값을 가져옵니다.

CookieRequireSSL

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

CookieSlidingExpiration

역할 이름 쿠키 만료 날짜 및 시간을 정기적으로 다시 설정하는지 여부를 나타냅니다.

CookieTimeout

역할 쿠키가 만료되기까지의 시간(분)을 가져옵니다.

CreatePersistentCookie

역할 이름 쿠키가 세션 기반인지, 아니면 영구적인지 여부를 나타내는 값을 가져옵니다.

Domain

역할 이름 쿠키의 도메인 값을 가져옵니다.

Enabled

현재 웹 애플리케이션에 역할 관리를 사용하는지 여부를 나타내는 값을 가져오거나 설정합니다.

MaxCachedResults

사용자에 대해 캐시할 역할 이름의 최대 개수를 가져옵니다.

Provider

애플리케이션의 기본 역할 공급자를 가져옵니다.

Providers

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

메서드

AddUsersToRole(String[], String)

지정된 역할에 지정된 사용자를 추가합니다.

AddUsersToRoles(String[], String[])

지정된 역할에 지정된 사용자를 추가합니다.

AddUserToRole(String, String)

지정된 역할에 지정된 사용자를 추가합니다.

AddUserToRoles(String, String[])

지정된 역할에 지정된 사용자를 추가합니다.

CreateRole(String)

데이터 소스에 새 역할을 추가합니다.

DeleteCookie()

역할 이름이 캐시된 쿠키를 삭제합니다.

DeleteRole(String)

데이터 소스에서 역할을 제거합니다.

DeleteRole(String, Boolean)

데이터 소스에서 역할을 제거합니다.

FindUsersInRole(String, String)

지정된 사용자 이름과 일치하는 부분이 사용자 이름에 포함되어 있는 사용자의 목록을 지정된 역할에서 가져옵니다.

GetAllRoles()

애플리케이션의 모든 역할 목록을 가져옵니다.

GetRolesForUser()

현재 로그온한 사용자가 속한 역할 목록을 가져옵니다.

GetRolesForUser(String)

사용자가 속한 역할 목록을 가져옵니다.

GetUsersInRole(String)

지정된 역할에 있는 사용자 목록을 가져옵니다.

IsUserInRole(String)

현재 로그온한 사용자가 지정된 역할에 속하는지 여부를 나타내는 값을 가져옵니다. API는 ASP.NET 요청 스레드의 컨텍스트 내에서만 호출되도록 고안된 것으로, 해당 권한이 있는 사용 사례에서는 스레드로부터 안전이 보장됩니다.

IsUserInRole(String, String)

지정된 사용자가 지정된 역할에 속하는지 여부를 나타내는 값을 가져옵니다. API는 ASP.NET 요청 스레드의 컨텍스트 내에서만 호출되도록 고안된 것으로, 해당 권한이 있는 사용 사례에서는 스레드로부터 안전이 보장됩니다.

RemoveUserFromRole(String, String)

지정된 역할에서 지정된 사용자를 제거합니다.

RemoveUserFromRoles(String, String[])

지정된 역할에서 지정된 사용자를 제거합니다.

RemoveUsersFromRole(String[], String)

지정된 역할에서 지정된 사용자를 제거합니다.

RemoveUsersFromRoles(String[], String[])

지정된 역할에서 지정된 사용자 이름을 제거합니다.

RoleExists(String)

지정된 역할 이름이 역할 데이터 소스에 이미 있는지 여부를 나타내는 값을 가져옵니다.

적용 대상

추가 정보