كيف يمكنني إيقاف مطالبات تسجيل الدخول بعد رفض ترخيص عنوان URL؟

برمجة


هل هناك طريقة داخل web.config أو إعدادات IIS 7 التي ستوقف مطالبات تسجيل الدخول وتجبر المستخدم على الخطأ 401 عند رفضه بسبب قاعدة ترخيص URL؟

في الوقت الحالي، نجح في تقييد الوصول إلى الصفحة، لكنه لا يعرض الخطأ “401 – غير مصرح به: تم رفض الوصول بسبب بيانات اعتماد غير صالحة” إلا بعد النقر فوق “إلغاء” في مطالبة تسجيل الدخول.

استخدام Windows 2008 R2 وIIS 7.5 ومصادقة Windows وانتحال الهوية وترخيص URL.

وفيما يلي عينة من كيفية بلدي web.config يبدو الملف…

XML
<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
        <security> 
            <authorization> 
                <remove users="*" roles="" verbs="" /> 
                <add accessType="Allow" roles="iis7test\BobAndFriends" />             

            </authorization> 
        </security> 
    </system.webServer> 
    <location path="bobsSecret.aspx"> 
        <system.webServer> 
            <security> 
                <authorization> 
                    <remove users="" roles="iis7test\BobAndFriends" verbs="" /> 
                    <add accessType="Allow" users="iis7test\Bob" />                  

                </authorization> 
            </security> 
        </system.webServer> 
    </location> 
</configuration> 

الحل 1

الحل 2

تم الحل باستخدام httpErrors في web.config. يقوم الموقع الآن بإعادة التوجيه إلى صفحة الخطأ المخصصة ولا يطالب ببيانات اعتماد Windows 3 مرات.

XML
<system.webServer>
   <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File">
     <remove statusCode="401" />
     <error statusCode="401" path="/AccessDenied.aspx" responseMode="ExecuteURL" />
   </httpErrors>
 </system.webServer>

コメント

タイトルとURLをコピーしました