مصادقة ASP.NET مع أدوار في وضع IIS7 المتكامل للمحتوى الثابت

StackOverflow https://stackoverflow.com/questions/991045

سؤال

أقوم بتجربة وضع المصادقة المتكامل للمحتوى الثابت في IIS7. تابعت التعليمات في هذه المقالة: http://aspnet.4guysfromrolla.com/articles/122408-1.aspx.تعمل بشكل جيد إذا سمحت / رفض الوصول عن طريق حالة تسجيل الدخول (مثل في المقالة). ومع ذلك، أريد السماح / رفض الوصول بناء على الأدوار (باستخدام مزود أدوار ASP.NET المدمج). عندما أضع قاعدة السماح بدور "المسؤول" في Web.config وحرمان القاعدة لجميع المستخدمين الآخرين، لا أستطيع الوصول إلى الملفات الثابتة حتى عند تسجيل الدخول كمشرف. يحتوي نفس المجلد على محتوى غير ثابت (صفحات ASPX) التي يمكن الوصول إليها فقط على أساس معلومات موفر الدور.

أيه أفكار؟

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

المحلول

حاول إضافة ما يلي <system.webServer> <modules> منع:

<configuration>
  <system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
      <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
      <remove name="UrlAuthorization" />
      <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
      <remove name="DefaultAuthentication" />
      <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
      <remove name="RoleManager" />
      <add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
    </modules>
  </system.webServer>
</configuration>

ال RoleManager BIT هو المفتاح، وليس المدرجة في أي من الأمثلة عبر الإنترنت التي يمكنني العثور عليها. بدون ذلك، لم تتم تهيئة عضوية دور المستخدم للمحتوى الثابت، لذلك سوف تفشل الترخيص القائم على الأدوار دائما.

(إخلاء المسئولية: لقد جمعت هذه معا نفسي بناء على فهمي المحدود ل IIS، ولكن يبدو أن العمل.)

تعديل (ردا على تعليقك): آسف، أنا لا أعرف الكثير حول كيفية اعتماد Rolemanager على وحدات أخرى. يمكنك عرض تكوين IIS الافتراضي من خلال النظر في c:\Windows\System32\inetsrv\config\applicationHost.config (على الأقل، هذا هو الماضي على جهاز Windows Vista الخاص بي) لرؤية الترتيب يتم تحميل الوحدات النمطية (لاحظ استخدام استخدام managedhandler. افتراضيا لتقييد Rolemanager إلى محتوى غير ثابت)، ويغطي MSDN rolemanagermodule. جنبا إلى جنب مع بقية الوحدات في System.Web.Security. مساحة الاسم، حتى تجد ربما ما تحتاجه هناك.

نصائح أخرى

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

هل يعمل إذا قمت بإضافة تعيين برنامج نصي برودكارد؟

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