معرف المقالة: 306590 - عرض المنتجات التي تنطبق عليها هذه المقالة.
تشير هذه المقالة إلى.net Microsoft التالية مكتبة الفئات إطار مساحات الأسماء:
  • System.Web.Security
  • System.Web.Principal
توسيع الكل | طي الكل

في هذه الصفحة

الموجز

توفر هذه المقالة مقدمة إلى ASP.NET أمان.

للحصول على نظرات عامة ASP.NET إضافية، راجع ما يلي مقالة قاعدة معارف Microsoft:
305140 معلومات: خارطة الطريق ASP.NET

معلومات أخرى

تمنحك ASP.NET المزيد من التحكم لتنفيذ الأمان ل التطبيق الخاص بك. يعمل الأمان ASP.NET بالتزامن مع "خدمات معلومات إنترنت" الأمان (IIS) وتتضمن خدمات المصادقة والتخويل ل تطبيق نموذج الأمان ASP.NET. يتضمن ASP.NET أيضا أساس الدور ميزة الأمان التي يمكن تنفيذها لكل من Microsoft Windows و حسابات المستخدمين غير Windows.

يتم تقسيم هذه الوثيقة إلى ما يلي المقاطع:

تدفق الأمان مع طلب

الخطوات التالية تخطيطاً لتتابع الأحداث عند العميل يجعل طلب:
  1. يطلب عميل صفحة.aspx موجودة على IIS ملقم.
  2. يتم تمرير بيانات الاعتماد الخاصة بالعميل إلى IIS.
  3. يتم مصادقة العميل IIS وتوجيه المصادقة الرمز المميز جنبا إلى جنب مع طلب العميل للعملية المنفذة ASP.NET.
  4. استناداً إلى الرمز المميز المصادق عليهم من IIS و يقرر ASP.NET إعدادات التكوين لتطبيق ويب، ما إذا كان سيتم انتحال صفة مستخدم على مؤشر الترابط الذي يقوم بمعالجة الطلب. في مميزة الفرق بين Microsoft صفحات الملقم النشطة (ASP) و ASP.NET، ASP.NET لا تعد ينتحل مصادقة المستخدم بشكل افتراضي. لتمكين الانتحال، يجب تعيين السمة انتحال من مقطع الهوية في ملف Web.config إلى true.
لمزيد من المعلومات حول تدفق الأمان، ارجع إلى الموضوع التالي في.net إطار برنامج تطوير Kit (SDK) الوثائق:
تدفق البيانات ASP.NET
.aspx http://msdn.microsoft.com/en-us/library/xa68twcb (vs.71)
لمزيد من المعلومات حول انتحال في ASP.NET، انقر فوق رقم المقالة التالي لعرضها في قاعدة معارف Microsoft:
306158 معلومات: تنفيذ الانتحال في أحد تطبيقات ASP.NET

إعدادات التكوين ذات الصلة

يحتفظ IIS إعدادات التكوين المتعلقة بالأمان في IIS قاعدة التعريف. ومع ذلك، يحتفظ ASP.NET الأمان (وغيرها) التكوين إعدادات في ملفات التكوين لغة التوصيف الموسعة (XML). على الرغم من ذلك عموما على تبسيط عملية نشر التطبيق الخاص بك من الأمان يتطلب طراز الأمان الذي يعتمد التطبيق الخاص بك، التكوين الصحيح لكل من قاعدة تعريف IIS و ASP.NET التطبيق من خلال ملف التكوين الخاص به (Web.config).

ما يلي مقاطع التكوين المرتبطة بالأمان ASP.NET:

المصادقة

المصادقة هي العملية من خلالها الحصول على تعريف بيانات الاعتماد مثل اسم المستخدم وكلمة المرور والتحقق من صحة بيانات الاعتماد تلك ضد بعض المرجع.

يوفر ASP.NET المصادقة أربعة موفرو:

مصادقة النماذج

يشير إلى نظام مصادقة النماذج في التي غير مصادق إعادة توجيه الطلبات إلى نموذج لغة توصيف النص تشعبي (HTML) التي المستخدمون بكتابة بيانات الاعتماد الخاصة بهم. بعد توفير بيانات اعتماد المستخدم ويرسل النموذج، يتم مصادقة التطبيق الطلب ومشكلات النظام بطاقة تخويل في نموذج ملف تعريف الارتباط. يحتوي ملف تعريف الارتباط هذا بيانات الاعتماد أو مفتاح لإعادة تحصيل الهوية. الطلبات اللاحقة من يتضمن المستعرض تلقائياً ملف تعريف الارتباط.

لمزيد من المعلومات حول مصادقة النماذج، راجع الموضوع التالي في.net Framework SDK الوثائق:
موفر مصادقة النماذج
.aspx http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71)
من أجل مصادقة النماذج على معلومات إضافية في ASP.NET، انقر فوق المقال رقم أدناه لعرض المقالة في قاعدة معارف Microsoft:
301240 كيفية: تنفيذ النماذج التي تعتمد مصادقة في تطبيق ASP.NET الخاص بك باستخدام C#.net

مصادقة Windows

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

لمزيد من المعلومات حول مصادقة Windows، راجع الموضوع التالي في.net إطار وثائق SDK:
موفر ويندووساوثينتيكاتيونمودولي
.aspx http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71)

مصادقة passport

مصادقة passport خدمة مصادقة مركزية، التي توفرها Microsoft، التي توفر الأساسية وسجل مفرد على الخدمات الشخصية المواقع الأعضاء. نموذجياً، يتم استخدام مصادقة Passport عند الحاجة سجل مفرد على قدرة عبر مجالات متعددة.

لمزيد من المعلومات معلومات حول مصادقة Passport، راجع الموضوع التالي في وثائق.net framework SDK:
موفر مصادقة Passport
.aspx http://msdn.microsoft.com/en-us/library/f8e50t0f (vs.71)

المصادقة الافتراضية

يتم استخدام المصادقة الافتراضية عندما لا تريد أي الأمان على تطبيق ويب الخاص بك؛ مطلوب الوصول المجهول للأمان هذا موفر. يوفر بين كافة موفري المصادقة المصادقة الافتراضية الحد الأقصى للأداء للتطبيق الخاص بك. يعتبر موفر مصادقة هذا أيضا استخدام عند استخدام الوحدة النمطية للأمان المخصصة الخاصة بك.

التخويل

التخويل هو عملية التحقق من حالة المصادقة مستخدم لديه حق الوصول إلى الموارد المطلوبة.

يقدم ASP.NET موفرو التخويل التالية:

فيليوثوريزيشن

ينفذ تخويل الملف فئة فيليوثوريزاتيونمودولي وتكون نشطة عند استخدام مصادقة Windows. فيليوثوريزاتيونمودولي المسؤولة عن إجراء تدقيق على التحكم بالوصول إلى Windows قوائم (ACLs) لتحديد ما إذا كان يجب أن يكون لمستخدم الوصول.

أورلاوثوريزيشن

الفئة أورلاوثوريزاتيونمودولي ينفذ تخويل محدد موقع المعلومات (URL) الذي يتحكم التخويل استناداً إلى مساحة اسم URI. يمكن أن يكون URI مساحات الأسماء مختلفة تماما عن مسارات المجلدات والملفات عليه أن أذونات NTFS استخدم.

يقوم أورلاوثوريزاتيونمودولي بتطبيق كلا تأكيدات التخويل الموجبة والسالبة؛ بمعنى، يمكن استخدام الوحدة النمطية للسماح بشكل انتقائي أو رفض الوصول إلى أجزاء عشوائية من مساحة اسم URI للمستخدمين، الأدوار (مثل "إدارة"، اختبار، والمسؤولين)، والأفعال (مثل GET و POST).

من أجل مزيد من المعلومات حول تخويل في ASP.NET، راجع الموضوع التالي في وثائق.net Framework SDK:
تخويل ASP.NET
.aspx http://msdn.microsoft.com/en-us/library/wce3kxhd (vs.71)

الأمان المستند إلى الدور

الأمان القائم على الدور في ASP.NET مشابه للقائم على الدور الأمان التي تستخدم Microsoft COM + و Microsoft معاملة Server (MTS)، على الرغم من أن هناك اختلافات مهمة. الأمان القائم على الدور في ASP.NET يقتصر على حسابات Windows ومجموعات. على سبيل المثال، إذا كانت مصادقة Windows ويتم تمكين الانتحال، وهوية المستخدم هوية Windows (User.Identity.Name = "المجال\اسم المستخدم"). يمكنك التحقق من الهويات الخاصة تعتبر العضوية في أدوار محددة ويقيد الوصول وفقا لذلك. من أجل على سبيل المثال:

التعليمات البرمجية Visual Basic.net
If User.IsInRole("BUILTIN\Administrators") Then
   Response.Write("You are an Admin")
Else If User.IsInRole("BUILTIN\Users") then
   Response.Write("You are a User")
Else
   Response.Write("Invalid user")
End if
				
رمز visual C#.net
if ( User.IsInRole("BUILTIN\\Administrators"))
   Response.Write("You are an Admin");
else if (User.IsInRole("BUILTIN\\Users"))
   Response.Write("You are a User");
else
   Response.Write("Invalid user");
				
إذا كنت تستخدم مصادقة النماذج، لم يتم تعيين الأدوار مستخدم تمت مصادقته؛ يجب القيام بذلك برمجياً. لتعيين الأدوار مصادقة المستخدم، استخدم الحدث أونوثينتيكاتي للوحدة النمطية للمصادقة (وهي النماذج الوحدة النمطية للمصادقة في هذا المثال) لإنشاء كائن GenericPrincipal جديد وتعيين إلى خاصية المستخدم httpcontext بشكل نموذجي. يوضح التعليمة البرمجية التالية وهذا:

التعليمات البرمجية Visual Basic.net
Public Sub Application_AuthenticateRequest(s As Object, e As EventArgs)
   If (Not(HttpContext.Current.User Is Nothing)) Then
      If HttpContext.Current.User.Identity.AuthenticationType = "Forms" Then
         Dim id as System.Web.Security.FormsIdentity = HttpContext.Current.User.Identity
         Dim myRoles(3) As String
         myRoles(0)= "managers"
         myRoles(1)= "testers"
         myRoles(2)= "developers"
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles) 
      End If
   End If
End Sub
				
رمز visual C#.net
public void Application_AuthenticateRequest(Object s, EventArgs e)      
{
   if (HttpContext.Current.User != null)
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" ) 
      {
         System.Web.Security.FormsIdentity id = HttpContext.Current.User.Identity;
         String[] myRoles = new String[3];
         myRoles[0]= "managers";
         myRoles[1]= "testers";
         myRoles[2]= "developers";
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
} 
				
لمعرفة ما إذا كان المستخدم في دور معين ويقيد الوصول تبعاً لذلك، استخدم التعليمات البرمجية التالية (أو مماثلة) في صفحات.aspx:

التعليمات البرمجية Visual Basic.net
If User.IsInRole("managers") Then
   Response.Write("You are a Manager")
Else If  User.IsInRole("testers") Then
   Response.Write("You are a Tester")
Else If User.IsInRole("developers") Then
   Response.Write("You are a Developer")
End if
				
رمز visual C#.net
if (User.IsInRole("managers"))
   Response.Write("You are a Manager");
else if (User.IsInRole("testers"))
   Response.Write("You are a Tester");
else if (User.IsInRole("developers"))
   Response.Write("You are a Developer");
				
للحصول على معلومات إضافية، انقر فوق المقالة رقم أدناه لعرض المقالة في قاعدة معارف Microsoft:
306238 كيفية: تطبيق يستند إلى دور الأمان باستخدام المصادقة المستندة إلى النماذج في تطبيق ASP.NET الخاص بك باستخدام Visual Basic.net
لمزيد من المعلومات حول الأمان المستند إلى الدور، راجع إلى الموضوع التالي في وثائق.net Framework SDK:
الأمان المستند إلى الدور
.aspx http://msdn.microsoft.com/en-us/library/52kd59t0 (vs.71)

مراجع

لمزيد من المعلومات حول إرشادات الأمان ASP.NET، راجع المستند التقني MSDN التالي:
المصادقة في ASP.NET: إرشادات الأمان.net
http://msdn.microsoft.com/en-us/library/ms978378.aspx
لمزيد من المعلومات العامة حول ASP.NET، ارجع إلى أخبار MSDN التالي:
microsoft.public.dotnet.framework.aspnet
للحصول على معلومات إضافية، انقر فوق المقالة الأرقام أدناه لعرض المقالات في Microsoft Knowledge Base:
311094 خطأ: رسالة الخطأ "كونفيجوراتيونيكسسيبشن" عند تمثيل حسابات قراءة التكوين
306359 PRB: Request.ServerVariables("LOGON_USER") إرجاع سلسلة فارغة في ASP.NET
313091 كيفية: إنشاء مفاتيح باستخدام Visual Basic.net لاستخدامه في مصادقة النماذج
313116 PRB: نماذج طلبات المصادقة غير موجهة إلى loginUrl صفحة
لمزيد من المعلومات، راجع الكتب التالية:
رايلي، دوغلاس ج. تصميم تطبيقات Microsoft ASP.NET. Microsoft Press، 2001.

إسبوزيتو، دينو.بناء حلول ويب مع ADO.NET و ASP.NET. Microsoft Press، 2001.

الخصائص

معرف المقالة: 306590 - تاريخ آخر مراجعة: 08/شعبان/1433 - مراجعة: 1.0
تنطبق على
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
كلمات أساسية: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtar
ترجمة آلية
هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية
اضغط هنا لرابط المقالة باللغة الانجليزية306590

إرسال ملاحظات

 

Kontaktieren Sie uns, um weitere Hilfe zu erhalten

Kontaktieren Sie uns, um weitere Hilfe zu erhalten
Wenden Sie sich an den Answer Desk, um professionelle Hilfe zu erhalten.