Bagikan melalui


Roles Kelas

Definisi

Mengelola keanggotaan pengguna dalam peran untuk pemeriksaan otorisasi dalam aplikasi ASP.NET. Kelas ini tidak dapat diwariskan.

public ref class Roles abstract sealed
public static class Roles
type Roles = class
Public Class Roles
Warisan
Roles

Contoh

Contoh berikut menunjukkan file Web.config untuk aplikasi yang dikonfigurasi untuk menggunakan peran keanggotaan ASP.NET dan ASP.NET dan menggunakan SqlRoleProvider untuk menyimpan informasi keanggotaan dan peran dalam database SQL Server. Pengguna diautentikasi dengan autentikasi formulir dan hanya pengguna dalam peran Administrator yang diizinkan mengakses aplikasi.

<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>

Contoh kode berikut secara terprogram memeriksa apakah pengguna yang masuk berada dalam peran Administrator sebelum memungkinkan pengguna untuk melihat peran pengguna lain.

Keterangan

ASP.NET manajemen peran memungkinkan Anda mengelola otorisasi untuk aplikasi Anda berdasarkan grup pengguna, yang disebut sebagai peran. Dengan menetapkan pengguna ke peran, Anda dapat mengontrol akses ke berbagai bagian atau fitur aplikasi Web Anda berdasarkan peran alih-alih, atau selain, menentukan otorisasi berdasarkan nama pengguna. Misalnya, aplikasi karyawan mungkin memiliki peran seperti Manajer, Karyawan, Direktur, dan sebagainya, di mana hak istimewa yang berbeda ditentukan untuk setiap peran.

Pengguna dapat memiliki lebih dari satu peran. Misalnya, jika situs Anda adalah forum diskusi, beberapa pengguna mungkin berperan sebagai Anggota dan Moderator. Anda dapat menentukan setiap peran untuk memiliki hak istimewa yang berbeda di situs, dan pengguna yang berada di kedua peran kemudian akan memiliki kedua set hak istimewa.

Untuk mengaktifkan manajemen peran untuk aplikasi ASP.NET Anda, gunakan elemen roleManager bagian system.web dalam file Web.config untuk aplikasi Anda, seperti yang ditunjukkan dalam contoh berikut.

<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>

Anda dapat menentukan aturan otorisasi dalam file konfigurasi untuk aplikasi Web Anda atau secara terprogram dalam kode Anda. Misalnya, bagian otorisasi berikut dari file Web.config mengharuskan pengguna untuk masuk (dengan menolak pengguna anonim), lalu hanya mengizinkan pengguna dalam peran Administrator untuk memiliki akses.

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

Jika Anda menggunakan authorization bagian dalam file Web.config aplikasi untuk menentukan otorisasi berdasarkan peran, pengguna aplikasi Anda harus menyediakan identitas pengguna yang diautentikasi. Anda dapat mengautentikasi pengguna dengan menggunakan autentikasi Windows atau Formulir. Pengguna anonim tidak dapat ditetapkan ke peran. Peran dapat digunakan secara independen, atau bersama dengan, kelas ASP.NET Membership .

Untuk memverifikasi keanggotaan peran secara terprogram, Anda dapat menggunakan Roles kelas atau Page.User properti dengan IsUserInRole metode , atau Anda dapat menggunakan Page.User properti dengan IPrincipal.IsInRole metode . Untuk kode sampel yang secara terprogram memeriksa keanggotaan peran, lihat bagian Contoh dalam topik ini.

Kelas ini Roles juga memungkinkan Anda membuat dan menghapus peran dan menambahkan pengguna ke atau menghapus pengguna dari peran.

Catatan

Jika Anda telah mengonfigurasi aplikasi untuk menggunakan WindowsTokenRoleProvider kelas , Anda tidak dapat mengubah peran atau keanggotaan peran. Kelas WindowsTokenRoleProvider memverifikasi keanggotaan hanya dalam grup keamanan Windows. Dalam hal ini, Anda harus menggunakan manajemen akun pengguna Windows daripada ASP.NET peran untuk membuat dan menghapus grup dan mengelola keanggotaan grup.

Anda dapat menyimpan informasi peran di beberapa sumber data.

  • Anda dapat menggunakan WindowsTokenRoleProvider kelas untuk mengambil informasi peran berdasarkan keanggotaan di grup Windows.

  • Anda dapat menyimpan informasi peran dalam database SQL Server dengan menggunakan SqlRoleProvider kelas .

  • Jika Anda memiliki informasi peran yang ada, atau ingin menyimpan informasi peran di dan mengambil informasi peran dari sumber data selain Windows, Penyimpanan Otorisasi, atau SQL Server, Anda dapat menerapkan penyedia peran kustom dengan membuat kelas yang mewarisi RoleProvider kelas abstrak. Untuk informasi selengkapnya, lihat Menerapkan Penyedia Peran.

Jika browser pengguna menerima cookie, Anda dapat menyimpan informasi peran untuk pengguna tersebut dalam cookie di komputer pengguna. Pada setiap permintaan halaman, ASP.NET membaca informasi peran untuk pengguna tersebut dari cookie. Ini dapat meningkatkan performa aplikasi dengan mengurangi jumlah komunikasi yang diperlukan dengan sumber data untuk mengambil informasi peran. Jika informasi peran untuk pengguna terlalu panjang untuk disimpan dalam cookie, ASP.NET hanya menyimpan informasi peran yang terakhir digunakan dalam cookie dan kemudian mencari informasi peran tambahan di sumber data sesuai kebutuhan. Jika browser pengguna tidak mendukung cookie atau cookie dinonaktifkan, informasi peran tidak di-cache dalam cookie.

Anda dapat meningkatkan keandalan nama peran yang di-cache dalam cookie dengan menentukan CookieProtectionValue properti saat Mengonfigurasi peran ASP.NET. CookieProtectionValue Defaultnya adalah All, yang mengenkripsi nama peran dalam cookie dan memvalidasi bahwa konten cookie belum diubah.

Properti

ApplicationName

Mendapatkan atau mengatur nama aplikasi untuk menyimpan dan mengambil informasi peran.

CacheRolesInCookie

Mendapatkan nilai yang menunjukkan apakah peran pengguna saat ini di-cache dalam cookie.

CookieName

Mendapatkan nama cookie tempat nama peran di-cache.

CookiePath

Mendapatkan jalur untuk cookie nama peran yang di-cache.

CookieProtectionValue

Mendapatkan nilai yang menunjukkan bagaimana nama peran yang di-cache dalam cookie dilindungi.

CookieRequireSSL

Mendapatkan nilai yang menunjukkan apakah cookie nama peran memerlukan SSL untuk dikembalikan ke server.

CookieSlidingExpiration

Menunjukkan apakah tanggal dan waktu kedaluwarsa cookie nama peran akan direset secara berkala.

CookieTimeout

Mendapatkan jumlah menit sebelum cookie peran kedaluwarsa.

CreatePersistentCookie

Mendapatkan nilai yang menunjukkan apakah cookie nama peran berbasis sesi atau persisten.

Domain

Mendapatkan nilai domain cookie nama peran.

Enabled

Mendapatkan atau menetapkan nilai yang menunjukkan apakah manajemen peran diaktifkan untuk aplikasi Web saat ini.

MaxCachedResults

Mendapatkan jumlah maksimum nama peran yang akan di-cache untuk pengguna.

Provider

Mendapatkan penyedia peran default untuk aplikasi.

Providers

Mendapatkan kumpulan penyedia peran untuk aplikasi ASP.NET.

Metode

AddUsersToRole(String[], String)

Menambahkan pengguna yang ditentukan ke peran yang ditentukan.

AddUsersToRoles(String[], String[])

Menambahkan pengguna yang ditentukan ke peran yang ditentukan.

AddUserToRole(String, String)

Menambahkan pengguna yang ditentukan ke peran yang ditentukan.

AddUserToRoles(String, String[])

Menambahkan pengguna yang ditentukan ke peran yang ditentukan.

CreateRole(String)

Menambahkan peran baru ke sumber data.

DeleteCookie()

Menghapus cookie tempat nama peran di-cache.

DeleteRole(String)

Menghapus peran dari sumber data.

DeleteRole(String, Boolean)

Menghapus peran dari sumber data.

FindUsersInRole(String, String)

Mendapatkan daftar pengguna dalam peran tertentu di mana nama pengguna berisi nama pengguna yang ditentukan untuk dicocokkan.

GetAllRoles()

Mendapatkan daftar semua peran untuk aplikasi.

GetRolesForUser()

Mendapatkan daftar peran tempat pengguna yang saat ini masuk.

GetRolesForUser(String)

Mendapatkan daftar peran tempat pengguna berada.

GetUsersInRole(String)

Mendapatkan daftar pengguna dalam peran yang ditentukan.

IsUserInRole(String)

Mendapatkan nilai yang menunjukkan apakah pengguna yang saat ini masuk berada dalam peran yang ditentukan. API hanya dimaksudkan untuk dipanggil dalam konteks utas permintaan ASP.NET, dan dalam kasus penggunaan yang disetujui itu aman untuk utas.

IsUserInRole(String, String)

Mendapatkan nilai yang menunjukkan apakah pengguna yang ditentukan berada dalam peran yang ditentukan. API hanya dimaksudkan untuk dipanggil dalam konteks utas permintaan ASP.NET, dan dalam kasus penggunaan yang disetujui itu aman untuk utas.

RemoveUserFromRole(String, String)

Menghapus pengguna yang ditentukan dari peran yang ditentukan.

RemoveUserFromRoles(String, String[])

Menghapus pengguna yang ditentukan dari peran yang ditentukan.

RemoveUsersFromRole(String[], String)

Menghapus pengguna yang ditentukan dari peran yang ditentukan.

RemoveUsersFromRoles(String[], String[])

Menghapus nama pengguna yang ditentukan dari peran yang ditentukan.

RoleExists(String)

Mendapatkan nilai yang menunjukkan apakah nama peran yang ditentukan sudah ada di sumber data peran.

Berlaku untuk

Lihat juga