This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

Roles الفئة

Visual Studio 2010

يقوم بإدارة عضوية الأدوار للتدقيق في ASP.NET تخويل مستخدم تطبيق. و هذه الفئة لا يمكن أن تكون موروثة.

مساحة الاسم:  System.Web.Security
التجميع:  System.Web (في System.Web.dll)

public static class Roles

يمكنك إدارة الأدوار كـP.NET من إدارة التخويل ل bكـed التطبيق الخاص بك على مجموعات من المستخدمين، والإشارة إلى كـ الأدوار. بواسطة تعيين مستخدمين إلى أدوار، يمكن التحكم في الوصول إلى أجزاء مختلفة أو ميزات تطبيق ويب الخاص بك يستند إلى دور بدلاً من، أو بالإضافة إلى تحديد تخويل استناداً إلى اسم مستخدم. تشغيل سبيل المثال، قد يكون لديك تطبيق موظف أدوار مثل المدراء والموظفين والمخرجين، و هكذا، الموقع يتم تعيين امتيازات مختلفة لكل دور.

يمكن للمستخدم أن ينتمي إلى أكثر من دور. على سبيل المثال، إذا كان موقعك منتدى مناقشة، قد تكون بعض المستخدمين في دور كل من الأعضاء والمشرفين. قد تقوم بتعريف كل دور ليكون لديهم امتيازات مختلفة تشغيل الموقع، ومستخدم الذي قام هو في كل من الأدوار ثم سيضطر كلتا المجموعتين من الامتيازات.

إلى تمكين إدارة الأدوار لتطبيق ASP.NET الخاص بك، استخدم عنصر roleManagersystem.webقسم في ملف ويب.config للتطبيق الخاص بك، كما هو موضح في المثال التالي.

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

يمكنك تحديد تخويل القواعد في ملف تكوين تطبيق ويب الخاص بك أو برمجياً في تعليمات برمجية الخاصة بك. تشغيل سبيل المثال، يتطلب التخويل الجزء التالي من ملف ويب.config للمستخدمين إلى تسجيل الدخول (برفض منح المستخدمين المجهولين)، ومن ثم تسمح فقط للمستخدمين في دور Administraإلىrs إلى حق الوصول.

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

إذا استخدمت authorizationقسم في ملف ويب.config تطبيق الخاص بك لتحديد تخويل استناداً إلى الأدوار، يجب تزويد مستخدمي تطبيق الخاص بك هوية مستخدم مصادق. المصادقة على المستخدمين بواسطة استخدام مصادقة Windows أو النماذج. لا يمكن تعيين المستخدمين المجهولين إلى دور. يمكن استخدام أدوار بشكل مستقل عن، أو بالتزامن مع، ASP.NET Membershipفئات.

إلى التحقق من عضوية دور برمجياً، يمكنك استخدام Rolesفئة أو Page.Userخاصية مع IsUserInRoleالأسلوب، أو يمكنك استخدام Page.Userخاصية IPrincipal.IsInRoleالأسلوب. للتعليمات البرمجية للنموذج برمجياً بفحص عضوية دور، راجع مقطع مثال في هذا الموضوع.

Roles فئة أيضا إمكانية إنشاء وحذف أدوار وإضافة مستخدمين إلى أو إزالة مستخدمين من الأدوار.

ملاحظةملاحظة

إذا قمت بتكوين تطبيق الخاص بك إلى استخدم WindowsTokenRoleProviderالفئة، لا يمكنك تعديل أدوار أو عضوية دور. WindowsTokenRoleProvider فئة يتحقق عضوية في مجموعات الأمان Windows فقط. في هذه الحالة، يجب استخدام إدارة حساب مستخدم Windows بدلاً من أدوار ASP.NET إلى إنشاء وحذف المجموعات وإدارة عضوية المجموعة.

يمكنك تخزين دور المعلومات في المصادر بيانات متعددة.

  • يمكنك استخدام WindowsTokenRoleProviderفئة لاسترداد دور المعلومات استناداً إلى عضويتهم في مجموعات Windows.

  • يمكنك تخزين معلومات الدور في SQL الخادم قاعدة بيانات باستخدام SqlRoleProviderفئة.

  • إذا كان لديك معلومات دور موجودة، أو تريد إلى المعلومات دور sإلىre في واسترداد معلومات الدور من مصدر بيانات آخر غير Windows Sإلىre التخويل أو SQL الخادم، يمكنك تطبيق موفر دور cusإلىm بإنشاء فئة التي ترث RoleProviderclass. مجردة لمزيد من المعلومات، راجع تطبيق موفر الدور.

مستعرض مستخدم قبول ملفات تعريف الارتباط، يمكنك تخزين معلومات دور لهذا مستخدم في ملف تعريف ارتباط تشغيل الكمبيوتر الخاص بالمستخدم. تشغيل كل طلب صفحة، يقرأ ASP.NET دور المعلومات لهذا مستخدم من ملف تعريف ارتباط. وهذا يمكن تحسين أداء تطبيق بواسطة تقليل مقدار الاتصال المطلوبة مع مصدر بيانات إلى استرداد معلومات الدور. إذا كانت معلومات دور مستخدم طويلة إلى o إلى sإلىre في ملف تعريف ارتباط، sإلىres ASP.NET فقط الأكثر الأخيرة دور المعلومات في ملف تعريف الارتباط وثم البحث عن معلومات إضافى لدور في مصدر بيانات كما هو مطلوب. في حالة عدم اعتماد مستعرض الخاص بالمستخدم لملفات تعريف الارتباط أو ملفات تعريف الارتباط dهوabled، ودور المعلومات هو غير المخزنة مؤقتاً في ملف تعريف ارتباط.

يمكنك تحسين الوثوقية دور الأسماء المخزنة مؤقتاً في ملف تعريف ارتباط بتعيين CookieProtectionValueخاصية عندما تقوم بتكوين ASP.NET دور s. الافتراضي CookieProtectionValueهو All، الذي يقوم بترميز أسماء الأدوار في ملف تعريف ارتباط والتحقق من عدم تغيير المحتويات لملفات تعريف الارتباط.

يظهر المثال التالي ملف ويب.config لتطبيق ما تم تكوينها لاستخدام كل من عضوية ASP.NET وأدوار ASP.NET واستخدام SqlRoleProviderلتخزين العضوية ودور المعلومات في قاعدة بيانات SQL الخادم. Users are authenticated مع forms مصادقة و فقط users في the Administrators دور are allowed الوصول إلى the تطبيق.

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

The following تعليمات برمجية مثال programmatically checks whether the logged-تشغيل مستخدم هو في the Administrators دور قبل allowing the مستخدم إلى عرض غير ذلك users' roles.

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: