لماذا تعيد توجيه ورقة الأنماط الخاصة بي إلى تسجيل الدخول؟

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

سؤال

أنا متأكد من أن هذا له علاقة بـ IIS ولكن لا يمكنني معرفة ذلك.

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

إن إدخال Web.Config for Forms أساسي للغاية:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

هناك أيضًا عقدان موقعان لإنكار المستخدمين من أجزاء أخرى من الموقع:

<location path="n2">
  <system.web>
    <authorization>
      <allow roles="Editors" />
    </authorization>
  </system.web>
</location>
<location path="web.config">
  <system.web>
    <authorization>
      <deny users="*" />
    </authorization>
  </system.web>
</location>

أنا أستخدم تثبيت IIS7 القياسي على Windows Server 2008 R2.

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

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

المحلول

كان لدي نفس الخطأ ، في حالتي ، كانت الحيلة تضع مصادقة مجهولة لاستخدام هوية تجمع التطبيق بدلاً من IUSR في IIS

  1. افتح IIs
  2. توسيع المواقع
  3. حدد [YourWebsite
  4. انقر نقرًا مزدوجًا على مصادقة (ستكون "منطقة" IIS "أو" فئة "الأمان)
  5. حدد مصادقة مجهولة
  6. انقر فوق تحرير في جزء الإجراءات
  7. انقر فوق زر الراديو "Pool Pool Identity"

نصائح أخرى

أنا أستعمل allow * لاجلي Content مجلد. سيمنع ذلك أي تفويض من حدوث محتوى ثابت.

  <location path="Content">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

ريك

في IIS ، كانت مصادقي المجهول بشكل صحيح وتم ضبط المستخدم على IUSR. لذلك ، كنت بحاجة إلى الانتقال إلى Windows Explorer ، والانتقال إلى دليل تطبيق الويب الخاص بي ، والنقر بزر الماوس الأيمن للحصول على الخصائص ، وعلامة تبويب الأمان ، وزر التحرير ، وإعطاء IUSR قراءة ، وقراءة وتنفيذ الأذونات (المجموعة الافتراضية). تأكد من أن التغييرات سوف يرثها جميع الأطفال ، وتقديم التقدم ، وربما الانتظار ، وأنت على ما يرام.

لقد مر الوقت منذ أن قمت بأي عمل من نماذج ASP.NET ولكن الأسئلة الأولى ستكون - هل أنت متأكد من أن المستخدم الخاص بك هو عضو في دور "المحررين". يمكنك استخدام أداة إدارة موقع الويب لإعداد هذا على ما أعتقد؟http://msdn.microsoft.com/en-us/library/ssa0wsyf.aspx

هذا لأنك حددت رفض الجميع. في IIS 7 ، بسبب خط الأنابيب المتكامل ، سيتم إعادة توجيهك حتى عند محاولة تصفح CSS أو أي صفحة ثابتة.

ضع المحتوى الثابت داخل المجلد إذا أردت وسمح للوصول إليه.

لا تستخدم <location> العلامات في web.config للتعامل مع التفويض في تطبيق ASP.NET MVC لأن المواقع لم تعد أي معنى. كل ما تحتاجه في web.config هو authentication بطاقة شعار. في ترخيص MVC يمكن تحقيقه عن طريق تزيين وحدات التحكم المناسبة و/أو الإجراءات مع [Authorize] ينسب.

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

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