Roles Sınıf

Tanım

Bir ASP.NET uygulamasında yetkilendirme denetlemesi için rollerdeki Kullanıcı üyeliğini yönetir.Manages user membership in roles for authorization checking in an ASP.NET application. Bu sınıf devralınamaz.This class cannot be inherited.

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

Örnekler

Aşağıdaki örnek, ASP.NET üyeliğini ve ASP.NET rollerini kullanmak üzere yapılandırılmış bir uygulama için Web.config dosyasını gösterir ve SqlRoleProvider üyeliği ve rol bilgilerini bir SQL Server veritabanında depolamak için öğesini kullanır.The following example shows the Web.config file for an application configured to use both ASP.NET membership and ASP.NET roles and to use the SqlRoleProvider to store membership and role information in a SQL Server database. Kullanıcıların kimliği, Forms kimlik doğrulamasıyla doğrulanır ve yalnızca Yöneticiler rolündeki kullanıcılar uygulamaya erişim izni verilir.Users are authenticated with forms authentication and only users in the Administrators role are allowed access to the application.

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

Aşağıdaki kod örneği, kullanıcının diğer kullanıcıların rollerini görüntülemesine izin vermeden önce, oturum açan kullanıcının Yöneticiler rolünde olup olmadığını denetler.The following code example programmatically checks whether the logged-on user is in the Administrators role before allowing the user to view other users' roles.

Açıklamalar

ASP.NET rol yönetimi, uygulamanız için rol olarak adlandırılan Kullanıcı gruplarına göre yetkilendirmeyi yönetmenizi sağlar.ASP.NET role management enables you to manage authorization for your application based on groups of users, referred to as roles. Kullanıcıları rollere atayarak, Web uygulamanızın farklı bölümlerine veya özelliklerine erişimi veya buna ek olarak, Kullanıcı adına göre yetkilendirme belirtmeyi denetleyebilirsiniz.By assigning users to roles, you can control access to different parts or features of your Web application based on role instead of, or in addition to, specifying authorization based on user name. Örneğin, bir çalışan uygulamasının, her rol için farklı ayrıcalıkların belirtildiği Yöneticiler, çalışanlar, yöneticileri vb. gibi rolleri olabilir.For example, an employee application might have roles such as Managers, Employees, Directors, and so on, where different privileges are specified for each role.

Kullanıcılar birden fazla role ait olabilir.Users can belong to more than one role. Örneğin, siteniz bir tartışma forumu ise, bazı kullanıcılar hem Üyeler hem de moderatör rolünde olabilir.For example, if your site is a discussion forum, some users might be in the role of both Members and Moderators. Her bir rolü sitede farklı ayrıcalıklara sahip olacak şekilde tanımlayabilir ve her iki rolde de bulunan bir kullanıcının her iki ayrıcalık kümesine sahip olması gerekir.You might define each role to have different privileges on the site, and a user who is in both roles would then have both sets of privileges.

ASP.NET uygulamanız için rol yönetimini etkinleştirmek üzere, roleManager system.web Aşağıdaki örnekte gösterildiği gibi, uygulamanız için Web.config dosyasında bölümünün roleManager öğesini kullanın.To enable role management for your ASP.NET application, use the roleManager element of the system.web section in the Web.config file for your application, as shown in the following example.

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

Yapılandırma dosyasında, Web uygulamanız için veya kodunuzda programlama yoluyla yetkilendirme kuralları belirtebilirsiniz.You can specify authorization rules in the configuration file for your Web application or programmatically in your code. Örneğin, bir Web.config dosyasından aşağıdaki Yetkilendirme bölümü, kullanıcıların oturum açmasını (anonim kullanıcıları reddeterek) ve ardından yalnızca Yöneticiler rolündeki kullanıcıların erişimine sahip olmasını gerektirir.For example, the following authorization section from a Web.config file requires users to log on (by denying anonymous users), and then allows only users in the Administrators role to have access.

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

authorizationRollere göre yetkilendirme belirtmek için uygulamanızın Web.config dosyasında bölümünü kullanırsanız, uygulamanızın kullanıcılarının kimliği doğrulanmış bir kullanıcı kimliği sağlaması gerekir.If you use the authorization section in your application's Web.config file to specify authorization based on roles, users of your application must supply an authenticated user identity. Windows ya da Forms kimlik doğrulaması kullanarak kullanıcıların kimliğini doğrulayabilirsiniz.You can authenticate users by using either Windows or Forms authentication. Anonim kullanıcılar role atanamaz.Anonymous users cannot be assigned to a role. Roller, ASP.NET sınıflarından bağımsız olarak veya ile birlikte kullanılabilir Membership .Roles can be used independently of, or in conjunction with, the ASP.NET Membership classes.

Rol üyeliğini programlı bir şekilde doğrulamak için, Roles sınıfını veya Page.User özelliğini IsUserInRole yöntemiyle kullanabilir veya Page.User özelliğini yöntemiyle kullanabilirsiniz IPrincipal.IsInRole .To verify role membership programmatically, you can use the Roles class or the Page.User property with the IsUserInRole method, or you can use the Page.User property with the IPrincipal.IsInRole method. Rol üyeliğini programlı bir şekilde denetleyen örnek kod için, bu konunun örnek bölümüne bakın.For sample code that programmatically checks role membership, see the Example section in this topic.

Bu Roles sınıf Ayrıca rolleri oluşturup silmenizi ve rollere kullanıcı eklemenizi ve rolleri kaldırmanıza olanak sağlar.The Roles class also enables you to create and delete roles and to add users to or remove users from roles.

Not

Uygulamanızı sınıfını kullanacak şekilde yapılandırdıysanız WindowsTokenRoleProvider , rolleri veya rol üyeliğini değiştiremezsiniz.If you have configured your application to use the WindowsTokenRoleProvider class, you cannot modify roles or role membership. WindowsTokenRoleProviderSınıfı yalnızca Windows güvenlik gruplarında üyeliği doğrular.The WindowsTokenRoleProvider class verifies membership in Windows security groups only. Bu durumda, gruplar oluşturup silmek ve grup üyeliğini yönetmek için ASP.NET roller yerine Windows Kullanıcı hesabı yönetimi kullanmanız gerekir.In this case, you must use Windows user account management rather than ASP.NET roles to create and delete groups and manage group membership.

Rol bilgilerini birkaç veri kaynağında saklayabilirsiniz.You can store role information in several data sources.

  • WindowsTokenRoleProviderWindows gruplarındaki üyeliğe göre rol bilgilerini almak için sınıfını kullanabilirsiniz.You can use the WindowsTokenRoleProvider class to retrieve role information based on membership in Windows groups.

  • Rol bilgilerini, sınıfını kullanarak bir SQL Server veritabanında saklayabilirsiniz SqlRoleProvider .You can store role information in a SQL Server database by using the SqlRoleProvider class.

  • Mevcut rol bilgileriniz varsa veya rol bilgilerini Windows, yetkilendirme deposu veya SQL Server dışında bir veri kaynağından depolamak ve rol bilgilerini almak istiyorsanız, soyut sınıfı devralan bir sınıf oluşturarak özel bir rol sağlayıcısı uygulayabilirsiniz RoleProvider .If you have existing role information, or want to store role information in and retrieve role information from a data source other than Windows, an Authorization Store, or SQL Server, you can implement a custom role provider by creating a class that inherits the RoleProvider abstract class. Daha fazla bilgi için bkz. rol sağlayıcısı uygulama.For more information, see Implementing a Role Provider.

Bir kullanıcının tarayıcısı tanımlama bilgilerini kabul ediyorsa, bu kullanıcı için rol bilgilerini kullanıcının bilgisayarındaki bir tanımlama bilgisinde saklayabilirsiniz.If a user's browser accepts cookies, you can store role information for that user in a cookie on the user's computer. Her sayfa isteğinde, ASP.NET bu kullanıcı için rol bilgilerini tanımlama bilgisinden okur.On each page request, ASP.NET reads the role information for that user from the cookie. Bu, rol bilgilerini almak için veri kaynağıyla gereken iletişim miktarını azaltarak uygulama performansını iyileştirebilir.This can improve application performance by reducing the amount of communication required with the data source to retrieve role information. Bir kullanıcının rol bilgilerinin bir tanımlama bilgisinde depolanamayacak kadar uzun olması durumunda ASP.NET, yalnızca tanımlama bilgisinde en son kullanılan rol bilgilerini depolar ve ardından veri kaynağındaki ek rol bilgilerini gereken şekilde arar.If the role information for a user is too long to store in a cookie, ASP.NET stores just the most recently used role information in the cookie and then looks up additional role information in the data source as required. Kullanıcının tarayıcısı tanımlama bilgilerini desteklemiyorsa veya tanımlama bilgileri devre dışıysa, rol bilgileri bir tanımlama bilgisinde önbelleğe alınmaz.If the user's browser does not support cookies or cookies are disabled, role information is not cached in a cookie.

ASP.NET rollerini yapılandırırken bir özellik belirterek, tanımlama bilgisinde önbelleğe alınmış rol adlarının güvenilirliğini artırabilirsiniz CookieProtectionValue .You can improve the reliability of the role names cached in a cookie by specifying a CookieProtectionValue property when you configure ASP.NET roles. Varsayılan olarak CookieProtectionValue , All tanımlama bilgisindeki rol adlarını şifreler ve tanımlama bilgisi içeriklerinin değiştirilmediğini doğrular.The default CookieProtectionValue is All, which encrypts role names in the cookie and validates that the cookie contents have not been altered.

Özellikler

ApplicationName

Depolanacak ve rol bilgilerinin alınması için uygulamanın adını alır veya ayarlar.Gets or sets the name of the application to store and retrieve role information for.

CacheRolesInCookie

Geçerli kullanıcının rollerinin bir tanımlama bilgisinde önbelleğe alınıp alınmayacağını gösteren bir değer alır.Gets a value indicating whether the current user's roles are cached in a cookie.

CookieName

Rol adlarının önbelleğe alındığı tanımlama bilgisinin adını alır.Gets the name of the cookie where role names are cached.

CookiePath

Önbelleğe alınmış rol adları tanımlama bilgisinin yolunu alır.Gets the path for the cached role names cookie.

CookieProtectionValue

Tanımlama bilgisinde önbelleğe alınan rol adlarının nasıl korunduğunu gösteren bir değer alır.Gets a value that indicates how role names cached in a cookie are protected.

CookieRequireSSL

Rol adları tanımlama bilgisinin sunucuya döndürülmek üzere SSL gerektirip gerektirmediğini gösteren bir değer alır.Gets a value indicating whether the role names cookie requires SSL in order to be returned to the server.

CookieSlidingExpiration

Rol adları tanımlama bilgisinin süre sonu tarih ve saatinin düzenli aralıklarla sıfırlanıp sıfırlanmayacağını gösterir.Indicates whether the role names cookie expiration date and time will be reset periodically.

CookieTimeout

Rol tanımlama bilgisinin süresi dolmadan önce geçmesi gereken dakika sayısını alır.Gets the number of minutes before the roles cookie expires.

CreatePersistentCookie

Rol adları tanımlama bilgisinin oturum tabanlı veya kalıcı olduğunu gösteren bir değer alır.Gets a value indicating whether the role-names cookie is session-based or persistent.

Domain

Rol adları tanımlama bilgisinin etki alanının değerini alır.Gets the value of the domain of the role-names cookie.

Enabled

Geçerli Web uygulaması için rol yönetiminin etkin olup olmadığını gösteren bir değer alır veya ayarlar.Gets or sets a value indicating whether role management is enabled for the current Web application.

MaxCachedResults

Bir kullanıcı için önbelleğe alınacak en fazla rol adı sayısını alır.Gets the maximum number of role names to be cached for a user.

Provider

Uygulamanın varsayılan rol sağlayıcısını alır.Gets the default role provider for the application.

Providers

ASP.NET uygulaması için rol sağlayıcılarının bir koleksiyonunu alır.Gets a collection of the role providers for the ASP.NET application.

Yöntemler

AddUsersToRole(String[], String)

Belirtilen kullanıcıları belirtilen role ekler.Adds the specified users to the specified role.

AddUsersToRoles(String[], String[])

Belirtilen rollere belirtilen kullanıcıları ekler.Adds the specified users to the specified roles.

AddUserToRole(String, String)

Belirtilen kullanıcıyı belirtilen role ekler.Adds the specified user to the specified role.

AddUserToRoles(String, String[])

Belirtilen kullanıcıları belirtilen rollere ekler.Adds the specified user to the specified roles.

CreateRole(String)

Veri kaynağına yeni bir rol ekler.Adds a new role to the data source.

DeleteCookie()

Rol adlarının önbelleğe alındığı tanımlama bilgisini siler.Deletes the cookie where role names are cached.

DeleteRole(String)

Veri kaynağından bir rolü kaldırır.Removes a role from the data source.

DeleteRole(String, Boolean)

Veri kaynağından bir rolü kaldırır.Removes a role from the data source.

FindUsersInRole(String, String)

Belirtilen roldeki, Kullanıcı adının eşleştirilecek belirtilen kullanıcı adını içerdiği kullanıcıların listesini alır.Gets a list of users in a specified role where the user name contains the specified user name to match.

GetAllRoles()

Uygulamanın tüm rollerinin bir listesini alır.Gets a list of all the roles for the application.

GetRolesForUser()

Şu anda oturum açmış kullanıcının bulunduğu rollerin listesini alır.Gets a list of the roles that the currently logged-on user is in.

GetRolesForUser(String)

Bir kullanıcının içinde bulunduğu rollerin listesini alır.Gets a list of the roles that a user is in.

GetUsersInRole(String)

Belirtilen roldeki kullanıcıların listesini alır.Gets a list of users in the specified role.

IsUserInRole(String)

Şu anda oturum açmış kullanıcının belirtilen rolde olup olmadığını gösteren bir değer alır.Gets a value indicating whether the currently logged-on user is in the specified role. API yalnızca bir ASP.NET istek iş parçacığı bağlamı içinde çağrılmalıdır ve bu tasdikli kullanım durumunda iş parçacığı açısından güvenlidir.The API is only intended to be called within the context of an ASP.NET request thread, and in that sanctioned use case it is thread-safe.

IsUserInRole(String, String)

Belirtilen kullanıcının belirtilen rolde olup olmadığını gösteren bir değer alır.Gets a value indicating whether the specified user is in the specified role. API yalnızca bir ASP.NET istek iş parçacığı bağlamı içinde çağrılmalıdır ve bu tasdikli kullanım durumunda iş parçacığı açısından güvenlidir.The API is only intended to be called within the context of an ASP.NET request thread, and in that sanctioned use case it is thread-safe.

RemoveUserFromRole(String, String)

Belirtilen rolden belirtilen kullanıcıyı kaldırır.Removes the specified user from the specified role.

RemoveUserFromRoles(String, String[])

Belirtilen rollerden belirtilen kullanıcıyı kaldırır.Removes the specified user from the specified roles.

RemoveUsersFromRole(String[], String)

Belirtilen rolden belirtilen kullanıcıları kaldırır.Removes the specified users from the specified role.

RemoveUsersFromRoles(String[], String[])

Belirtilen rollerden belirtilen kullanıcı adlarını kaldırır.Removes the specified user names from the specified roles.

RoleExists(String)

Belirtilen rol adının rol veri kaynağında zaten var olup olmadığını gösteren bir değer alır.Gets a value indicating whether the specified role name already exists in the role data source.

Şunlara uygulanır

Ayrıca bkz.