আইআইএস 7.5: উইন্ডোজ প্রমাণীকরণের সাথে কীভাবে কাস্টম প্রমাণীকরণ ত্রুটি পৃষ্ঠা কনফিগার করা যায়। 401 শিরোনাম সমস্যা


14

আমার পিএইচপি ওয়েবসাইট আইআইএস 7.5 এর অধীনে চলছে। সাইটটি উইন্ডোজ প্রমাণীকরণ দ্বারা সুরক্ষিত এবং এটি দুর্দান্ত কাজ করে:

উইন্ডোজ প্রমাণীকরণ চালু আছে

ব্যবহারকারীরা সাইটে গেলে, তাদের ব্যবহারকারীর নাম / পাসওয়ার্ড জিজ্ঞাসা করা হয় এবং অনুমোদনপ্রাপ্ত হলে তা পেয়ে যায়। যদি ব্যবহারকারীরা 3 বার বাতিল বা ভুল টাইপ করে ক্লিক করেন তবে তাদের 401 ত্রুটি পৃষ্ঠা প্রদর্শিত হবে:

কুরুচিপূর্ণ 401 পৃষ্ঠা

এখন আমি কীভাবে লগ ইন করতে হবে তা ব্যাখ্যা করে কাস্টম পৃষ্ঠা প্রদর্শন করতে চাই। সুতরাং আমি ত্রুটি পৃষ্ঠাগুলিতে যাচ্ছি, স্থিতি কোড 401.2 নির্বাচন করুন এবং আমি যে পৃষ্ঠাটি প্রদর্শন করতে চাই তাতে এটি নির্দেশ করুন:

ত্রুটি পৃষ্ঠাগুলি সেটিংস

তারপরে নিশ্চিত হয়ে নিন যে সবার জন্য কাস্টম ত্রুটিগুলি চালু আছে। আর কা-বুম! প্রমাণীকরণ আর কাজ করে না, ব্যবহারকারীরা পাসওয়ার্ড প্রম্পট সহ উপস্থাপিত হয় না। ডকুমেন্টেশন যেমন বলে, উইন্ডোজ প্রমাণীকরণ প্রথমে 401 জবাব পাঠিয়ে কাজ করে, তারপরে ব্রাউজার ব্যবহারকারীকে সরবরাহকারীর শংসাপত্রগুলি জিজ্ঞাসা করে এবং তারপরে তারা কী করতে হবে তা নিয়ে কাজ করে।

এখানে কী ঘটে: পৃষ্ঠার প্রথম অনুরোধে আইআইএস 401-শিরোলেখ প্রেরণের চেষ্টা করে, তবে ওয়েবকনফিগ "401 এ এই পৃষ্ঠাতে পুনঃনির্দেশিত" বলে নোটিশটি লক্ষ্য করে। এবং প্রমাণীকরণের পরিবর্তে, এটি কেবল পুনর্নির্দেশ পৃষ্ঠা দেয়।

আমি 401, 401.1, 401.2 প্রতিস্থাপন করার চেষ্টা করেছি - কোনও পার্থক্য নেই।

আমি কী ভুল করছি এবং ব্যবহারকারীর প্রমাণীকরণের ত্রুটিতে কাস্টম পৃষ্ঠাটি কীভাবে দেব?

পিএস এখানে ওয়েবকনফিগ:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="Custom">
            <remove statusCode="500" subStatusCode="-1" />
            <remove statusCode="404" subStatusCode="-1" />
            <remove statusCode="401" subStatusCode="-1" />
            <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" />
            <error statusCode="404" prefixLanguageFilePath="" path="/not_restricted/404.htm" responseMode="ExecuteURL" />
        </httpErrors>
        <httpProtocol>
            <customHeaders>
                <remove name="X-Powered-By" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
    <system.web>
        <identity impersonate="false" />
        <customErrors defaultRedirect="http://www.myserver.com/not_restricted/500.htm" mode="Off">
        </customErrors>
    </system.web>
</configuration>

উত্তর:


15

এটা চেষ্টা কর:

পরিবর্তন:

<error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" />

প্রতি

<error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="not_restricted\401.htm" responseMode="File" />

প্রতিক্রিয়া মোডের সাথে 'ফাইল' আইআইএস কেবল সেই ফাইলটির সামগ্রী লোড করে এবং এটি প্রদর্শন করে, এটি এখনও ক্লায়েন্টকে 401 স্থিতি প্রেরণ করে।

আমি 'এক্সিকিউট ইউআরএল' ব্যবহার করতাম তবে শিখেছি ফাইল মোড আরও ভাল কাজ করে। আপনাকে কেবল এটি নিশ্চিত করতে হবে যে আপনার ত্রুটি পৃষ্ঠাগুলিতে কোনও লিঙ্কযুক্ত সংস্থান এখনও কাজ করে।


1
স্যার, আপনি একটি তারকা! প্রথম প্রচেষ্টা থেকেই সমস্যাটি স্থির!
ট্রিলম্যাক্স

2

আমি কাস্টম httperferences যুক্ত করার পরে শংসাপত্রগুলির সাথে অনুরোধ করা হচ্ছে না ব্যবহারকারীদের এই একই ইস্যুতে ছুটে এসেছি এবং 0 এর সাবস্ট্যাটাসকোড দিয়ে এটি ঠিক করতে সক্ষম হয়েছি আশা করি এটি কারও সাহায্য করবে helps

<error statusCode="401" subStatusCode="0" path="..." responseMode="ExecuteURL">

1

সুতরাং আমি বেসিক অথির ঠিক একই সমস্যাটি ব্রাউজারকে প্রম্পট না করার জন্য একটি কঠিন সময় কাটাচ্ছিলাম। 401.0 এর কাস্টম ত্রুটি জোর করে না (যেমন সুস্পষ্টভাবে 0 তে সাবকোড সেট করা) বা রেজিস্ট্রি কী তৈরি করা সেটি আমার জন্য সমাধান হয়নি।

দেখা গেল এটি দিয়ে কাস্টম ত্রুটি পৃষ্ঠাগুলি আমাদের ব্যবহার শুরু হয়েছিল। এগুলি বন্ধ করে, সবকিছু ঠিকঠাক হয়ে গেছে, ফিরে ... বিশেষত 401 (0) এবং 401.2 ত্রুটিগুলি প্রম্পটটিকে আটকায়।

'এক্সিকিউট ইউআরএল' থেকে 'ফাইল' এ কাস্টম ত্রুটি টাইপ সেট করা এটি সমাধান করেছে তবে ব্যবহারকারী যদি প্রম্পটটি বাতিল করে দেয় বা একটি খারাপ পাসওয়ার্ড প্রবেশ করে তবে তারা একটি জেনেরিক পেয়েছিল "আপনার কাছে এই ডিরেক্টরি বা পৃষ্ঠা দেখার অনুমতি নেই"।

বিভিন্ন পোস্ট থেকে প্রচুর ইঙ্গিত পাওয়ার পরে, তবে কখনই 'হু-টু' বা 'কেন' সঠিক নয় ... আমি কাস্টম ত্রুটি ফাইলের জন্য একটি আপেক্ষিক পথটি ব্যবহার করছিলাম যা সাইটের উপ-ডিরেক্টরিতে ছিল। নিরঙ্কুশ একটির পথে পরিবর্তন করার কারণে বাতিল বা খারাপ পাসওয়ার্ড যদি উপরের জেনেরিক ত্রুটিটি "এই পৃষ্ঠাটি প্রদর্শন করতে পারে না" দ্বারা প্রতিস্থাপন করে। আরও কিছু খনন করে আমি একটি পোস্ট পেয়েছিডিফল্টরূপে মিথ্যাতে সেট করা একটি কনফিগার অ্যাট্রিবিউট "অনুমতিঅবলিউলেপথস ওয়েইন ডেলেগেটেড" সম্পর্কে কথা বলছি। এতে আরও বলা হয়েছে যে আপনি যদি গ্রাহকের ত্রুটি ফাইলটি কেবল আপনার সাইটের মূলের মধ্যে রাখেন এবং তারপরে কাস্টম ত্রুটির স্থানে কেবল ফাইলের নাম (যেমন সাইটের মূলের সাথে সম্পর্কিত পাথ) এটি কাজ করবে ... তবে এটি নিশ্চিতভাবেই যথেষ্ট , আমি আমার সাইটের মূলটিতে কাস্টম ত্রুটিগুলি রাখতে চাইনি। সুতরাং আমি উপরের বৈশিষ্ট্যটিকে সত্যে সেট করতে, কাস্টম ত্রুটিযুক্ত ফাইলগুলির নিখুঁত পথ সেট করে সবকিছু ঠিকঠাক কাজ শুরু করতে কনফিগারেশনএডিটর ব্যবহার করেছি। প্রম্পট রয়ে গেছে, ট্রিগার করা হলে কাস্টম ত্রুটি প্রদর্শন করা হয়।

আমি যা চাই তা হল, নেস্টেড আপেক্ষিক পাথের সাথে ফাইল অ্যাট্রিবিউটটি ব্যবহার করতে সক্ষম হওয়া, তবে এখনও আমি খুঁজে পেলাম না কেন আমি করতে পারি না বা কীভাবে এটি করতে পারি। অন্য প্রশ্নটি হ'ল যদি কোনও নিখুঁত পথ ব্যবহার করে, আমি যদি সম্ভাব্যভাবে কোনও সুরক্ষা গর্ত তৈরি করি (তবে কেন এটি ডিফল্টরূপে অক্ষম হবে?)

যাইহোক, আশা করি এটি কাউকে সাহায্য করবে।


0

আমার ক্ষেত্রে 2 টি সমাধানের সংমিশ্রণটি কিছু অদ্ভুত কারণে আমার জন্য এসপিএন এমভিসি 5 এর জন্য কাজ করেছিল।

  <error statusCode="401" subStatusCode="0" prefixLanguageFilePath="" path="not_restricted\401.htm" responseMode="File" />

এটি গ্রহণযোগ্য উত্তর হিসাবে সঠিক উত্তর।
আলোকিত

স্থিতি কোড আলাদা।
তেওমন শিপাহি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.