سؤال

ال ? يمثل Wildcard مستخدمين غير مصقين أثناء * يمثل جميع المستخدمين ، المصادقة وغير المصادقة. يعرض كتابي المثال التالي لترخيص عنوان URL:

<authorization>
  <deny users="?" />
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>


ولكن ليس الرمز أعلاه له نفس تأثير:

<authorization>
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>

أو قام المؤلف أيضًا بتضمينه <deny users="?" /> حكم لسبب ما؟

هل كانت مفيدة؟

المحلول

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

deny user="?" 

يحرم الوصول إلى المستخدم المجهول. ثم

allow users="dan,matthew" 

منح الوصول إلى هذا المستخدم. وأخيرا ، فإنه يحرم الوصول إلى الجميع. هذا يهز مثل الجميع باستثناء دان ، ماثيو يحرم من الوصول.

تحرير لإضافة: وكما يشير Deviant ، فإن رفض الوصول إلى غير مصادقة لا معنى له ، لأن الإدخال الأخير يتضمن غير مصادقة أيضًا. يمكن العثور على إدخال مدونة جيد يناقش هذا الموضوع على: مدونة جورو ساركار

نصائح أخرى

"في وقت التشغيل ، تتكرر وحدة التخويل من خلال عناصر السماح وإنكارها ، بدءًا من أكثر ملف التكوين المحلي ، حتى تجد وحدة التخويل قاعدة الوصول الأولى التي تناسب حساب مستخدم معين. ثم تمنح وحدة التخويل أو ترفض الوصول إلى مورد عنوان URL اعتمادًا على ما إذا كانت قاعدة الوصول الأولى الموجودة هي قاعدة سمح أو رفض. قاعدة التفويض الافتراضية هي. وبالتالي ، بشكل افتراضي ، يُسمح بالوصول ما لم يتم تكوينه على خلاف ذلك. "

مقال في MSDN

deny = * means deny everyone
deny = ? means deny unauthenticated users

في مثالك الأول ، لن يؤثر Deny * على Dan ، ماثيو لأنهم سمحوا بالفعل بالقاعدة السابقة.

وفقًا للمستندات ، إليك أي فرق في مجموعات القواعد 2.

مثال 1 هو لتطبيقات ASP.NET باستخدام نماذج Authenication. هذه الممارسة الشائعة لتطبيقات الإنترنت لأن المستخدم غير مصادق حتى يتم المصادقة ضد بعض الوحدات الأمنية.

مثال 2 هو لتطبيق ASP.NET باستخدام Windows Authenication. يستخدم مصادقة Windows Active Directory لمصادقة المستخدمين. سوف تمنع الوصول إلى التطبيق الخاص بك. يمكنني استخدام هذه الميزة على تطبيقات إنترانت.

انظر هذا الرابطان:

العنصر الرفض للترخيص (مخطط إعدادات ASP.NET) http://msdn.microsoft.com/en-us/library/vstudio/8aeskcd٪28v=vs.100٪29.aspx

السماح عنصرًا بالترخيص (مخطط إعدادات ASP.NET): http://msdn.microsoft.com/en-us/library/vstudio/acsd09b0٪28v=vs.100٪29.aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top