ভিএস ২০১৩ - এ আইবি এক্সপ্রেসে ডিবাগ করার সময় প্রমাণীকরণের সমস্যা


103

ভিজ্যুয়াল স্টুডিও 2013-এ ডিবাগ করার সময় আমি উইন্ডোটির ব্যবহারকারীর নামটি নেওয়ার চেষ্টা করছি I আমি কেবল ব্যবহার করছি:

httpcontext.current.user.identity.name

যদি আমি এটি আমার ডেভ সার্ভারে চালিত করি তবে এটি দুর্দান্ত কাজ করে, যদি আমি ভিজ্যুয়াল স্টুডিওর আগের কোনও সংস্করণে এটি ডিবাগ মোডে চালিত করি তবে এটিও ঠিক কাজ করে।

আমার সমস্যাগুলি হ'ল - যদি আমি ভিজ্যুয়াল স্টুডিও 2013 এ এটি চালাই তবে আমি একটি খালি স্ট্রিং পাই।

আমার ওয়েব কনফিগারেশনটি নিম্নরূপ।

<system.web>
    <authentication mode="Windows"/>
    <identity impersonate="false"/>
    <authorization>
       <allow users="*"/>
    </authorization>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
    <customErrors mode="Off"/>
</system.web>

উত্তর:


215

আমি সবেমাত্র ভিএস ২০১২ থেকে ভিএস ২০১৩ এ আপগ্রেড করেছি এবং বর্তমান ব্যবহারকারীর পরিচয় (HttpContext.User.Identity) বেনামে এসেছিল।

আমি আইআইএস এক্সপ্রেস অ্যাপ্লিকেশন হোস্টকনফিগ পরিবর্তন করার চেষ্টা করেছি, কোনও পার্থক্য নেই।

সমাধানটি ছিল ওয়েব প্রকল্পের বৈশিষ্ট্যগুলি অনুসন্ধান করা, প্রজেক্টের শীর্ষস্থানীয় স্তর নির্বাচন করার পরে প্রকল্পের বৈশিষ্ট্য পেতে F4 চাপুন। প্রকল্পে ডান ক্লিক করুন এবং বৈশিষ্ট্য নির্বাচন করবেন না, এটি সম্পূর্ণ ভিন্ন কিছু।

অক্ষম করতে অজ্ঞাতনামা প্রমাণীকরণ এবং সক্রিয় করতে উইন্ডোজ প্রমাণীকরণ পরিবর্তন করুন।

গ্রেভির মতো কাজ করে :)


10
তার জন্য ধন্যবাদ আমি বিশ্বাস করতে পারি না তারা এটিকে 'বর্ধন' হিসাবে যুক্ত করেছে। ওয়েবকনফিগ এটির জন্য। এখন আমরা ওয়েবকনফাইগে যা দেখি তা বিশ্বাস করতে পারি না। উজ্জ্বল।
ট্রাকার_জিম

4
আমি বিশ্বাস করি এটি গৃহীত উত্তরের চেয়ে আরও ভাল পন্থা, কারণ এটি আইআইএস এক্সপ্রেসে চলমান অন্যান্য প্রয়োগকে প্রভাবিত করবে না।
নিয়াহের

একটি গুচ্ছ ধন্যবাদ। এটা আমার জন্য এটি করেছে! একটি ভিজ্যুয়াল স্টুডিও 2008 প্রকল্প ছিল আমি ভিজ্যুয়াল স্টুডিও 2013 এ আপগ্রেড করেছি
রব কে।

ভিএস ২০১২ সালে আমি ব্যবহার করেছি: "ভিজ্যুয়াল স্টুডিও ডেভলপমেন্ট সার্ভার ব্যবহার করুন"। সুতরাং একটি আপগ্রেড এবং এটি কাজ করে। যদিও এটি এখন আইআইএস এক্সপ্রেস চালায়।
থমাস কোয়েল

আপনি যদি স্রেফ ভিএস 2013 তে আপগ্রেড করেছেন তবে এটির একটি গ্রহণযোগ্য উত্তর হওয়া উচিত
নিশান্ত

130

যখন আমি এটি গবেষণা করছিলাম তখন আমি আমার উত্তরটি খুঁজে পেলাম, তবে ইন্টারনেটে উত্তরটি খুঁজে পাচ্ছি না, তাই আমি ভেবেছিলাম আমি এটি ভাগ করে নিই:

আমি আমার applicationhost.config ফাইলটি সংশোধন করে আমার সমস্যাটি সমাধান করেছি। আমার ফাইলটি "\ আমার ডকুমেন্টস \ IISExpress \ কনফিগারেশন" ফোল্ডারে সংরক্ষিত হয়েছিল।

দেখে মনে হচ্ছে ভিএস2013 আমার ওয়েবকনফিগ ফাইলটিকে উপেক্ষা করছে এবং বিভিন্ন প্রমাণীকরণ পদ্ধতি প্রয়োগ করছে।

নীচের মত দেখতে ফাইলের এই অংশটি পরিবর্তন করতে হয়েছিল। সত্য সত্যই, আমি কেবল অজ্ঞাতনামা প্রমাণীকরণকে মিথ্যা এবং উইন্ডোজ অ্যাটেনটিকেশন মোডকে সত্য হিসাবে পরিবর্তন করেছি।

<authentication>

  <anonymousAuthentication enabled="false" userName="" />

  <basicAuthentication enabled="false" />

  <clientCertificateMappingAuthentication enabled="false" />

  <digestAuthentication enabled="false" />

  <iisClientCertificateMappingAuthentication enabled="false">
  </iisClientCertificateMappingAuthentication>

  <windowsAuthentication enabled="true">
    <providers>
      <add value="Negotiate" />
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>

</authentication>

2
নির্ভরযোগ্যভাবে কাজ করতে আইআইএস এক্সপ্রেস ব্যবহার করে ভিএস ২০১৩ সালে ডিবাগিং পেতে আমাকে এটি করতে হয়েছিল। এটি ছাড়া, একবার ঠিক আছে বলে মনে হচ্ছে, তারপরে 401। (1) এমন একটি অ্যাপসিএমডি কমান্ড রয়েছে যা অ্যাপ্লিকেশনহোস্ট.কনফিগ ফাইলটি পরিবর্তন করবে এবং ওয়েব প্রকল্পে (2), এফ 4 আমাকে বেনামে আথ বন্ধ করতে এবং উইন্ডোজ অথ চালু করতে দেয় A ভিএস ২০১২-তে এটি ভাল কাজ করেছে, ভিএস ২০১৩-তে 401 ফ্রি ডেভ পরিবেশ তৈরি হয় না।
IanT8

4
@ নীল, আপনি আমার দিন বাঁচিয়েছেন। বিটিডাব্লু: এটি বন্ধ করার দরকার নেই anonymousAuthentication। এটি চালু করার জন্য যথেষ্ট windowsAuthentication। এই সেটিংসটি ওয়েব সাইটগুলিকে কোন অনুমোদনের পদ্ধতি ব্যবহারের অনুমতি দেয় তা নিয়ন্ত্রণ করে।
চিককোডোরো

+1 পাশাপাশি ... আমার স্থানীয় আইআইএসএক্সপ্রেস আইট্যান্সের সাথে কিছুক্ষণের জন্য এই উত্তেজনাপূর্ণ সমস্যাটি সমাধান করার চেষ্টা করা হচ্ছে
জেফ লুইস

আহ, এটি কীভাবে করবেন। জিনিয়াস। এই টিপটির জন্য ধন্যবাদ, সত্যিই দরকারী!
মাইক গ্লেডহিল

1
401 না পেয়ে ওয়েবসাইসেস কল (ডাব্লুএসই 3 দিয়ে) পরীক্ষা করতে সক্ষম হতে আমাকে "নেগোসিয়েট" সরিয়ে ফেলতে হয়েছিল।
ওল্ফ 5

41

ভিজ্যুয়াল স্টুডিও 2013 এবং ভিএস 15 (তবে আমি অনুমান করি যে অন্য সমস্ত সংস্করণে এটি একই হয়) কেবল F4 চাপুন এবং এই দুটি বৈশিষ্ট্য পরিবর্তন করুন: - বেনামে প্রমাণীকরণ: অক্ষম করুন - উইন্ডোজ প্রমাণীকরণ: সক্ষম করুন


1
তার জন্য ধন্যবাদ আমি বিশ্বাস করতে পারি না তারা এটিকে 'বর্ধন' হিসাবে যুক্ত করেছে। ওয়েবকনফিগ এটির জন্য। এখন আমরা ওয়েবকনফাইগে যা দেখি তা বিশ্বাস করতে পারি না। উজ্জ্বল।
ট্রাকার_জিম

1
আপনি কেবল আমাকে ভিজ্যুয়াল স্টুডিও 2010-র রোলব্যাক থেকে সংরক্ষণ করেছেন!
জুলিয়ান পি

2
আমি বিশ্বাস করি না যে এই সমস্ত 1 টি পোস্টের মধ্যে এটি # 1 কোয়েস্টিয়ো / উত্তর ছিল না যারা আইআইএস সেটিংস সম্পর্কে কথা বলতে থাকে
হারিয়ে গেছে

38

বৈশিষ্ট্য উইন্ডোটি দেখতে এবং বেনামে অ্যাক্সেস অক্ষম করতে এবং "উইন্ডোজ প্রমাণীকরণ" সক্ষম করতে আপনার প্রকল্পে ভিএস ২০১৩ এফ 4 এ

তাহলে এটা কাজ করবে। আর কিছু পরিবর্তন করার দরকার নেই


হতাশাজনকভাবে, আপনি যখন কোনও ওয়েব প্রকল্পটি ডিবাগ করতে চান তখন এই বিকল্পটি উপস্থিত থাকে তবে পরিষেবা প্রকল্পগুলির জন্য এটি বিদ্যমান নেই। গ্রারার ...
মাইক

9

ভিএস 2015 এটি পরিবর্তন করে। এটি আমার ওয়েব প্রকল্পে একটি .vs ফোল্ডার যুক্ত করেছে এবং অ্যাপ্লিকেশনহোস্ট.কনফিগ সেখানে ছিল। আমি প্রস্তাবিত পরিবর্তনগুলি করেছি (উইন্ডো প্রমাণীকরণ = সত্য, আনন = মিথ্যা) এবং এটি ফাঁকা পরিবর্তে একটি ব্যবহারকারীর নাম সরবরাহ শুরু করে।


8

সি: \ ব্যবহারকারীদের [ইউজারিড] u ডকুমেন্টস SE আইআইএসএক্সপ্রেস \ কনফিগার ফোল্ডারে থাকা অ্যাপ্লিকেশন হোস্টকনফিগ ফাইলটি খুলুন। এই ফাইলের অভ্যন্তরে অজ্ঞাতপরিচয় ও উইন্ডোজর অনুমোদনের ওভাররাইড মোডডফল্টকে "অনুমতি দিন" তে পরিবর্তন করুন

 <sectionGroup name="security">
                <section name="access" overrideModeDefault="Deny" />
                <section name="applicationDependencies" overrideModeDefault="Deny" />
                <sectionGroup name="authentication">
                    <section name="anonymousAuthentication" overrideModeDefault="Allow" />
                    <section name="basicAuthentication" overrideModeDefault="Deny" />
                    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="digestAuthentication" overrideModeDefault="Deny" />
                    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="windowsAuthentication" overrideModeDefault="Allow" />
                </sectionGroup>

পরবর্তী পরিবর্তন লক আইটেমটি বেনামে অথ্যান্টিকেশনমডিউল এবং উইন্ডোজ অ্যাটেন্টিকেশনমডুলের জন্য "মিথ্যা" হতে হবে

  <system.webServer>
            <modules>
                <!--
                <add name="HttpCacheModule" lockItem="true" />
-->
                <add name="DynamicCompressionModule" lockItem="true" />
                <add name="StaticCompressionModule" lockItem="true" />
                <add name="DefaultDocumentModule" lockItem="true" />
                <add name="DirectoryListingModule" lockItem="true" />
                <add name="IsapiFilterModule" lockItem="true" />
                <add name="ProtocolSupportModule" lockItem="true" />
                <add name="HttpRedirectionModule" lockItem="true" />
                <add name="ServerSideIncludeModule" lockItem="true" />
                <add name="StaticFileModule" lockItem="true" />
                <add name="AnonymousAuthenticationModule" lockItem="false" />
                <add name="CertificateMappingAuthenticationModule" lockItem="true" />
                <add name="UrlAuthorizationModule" lockItem="true" />
                <add name="BasicAuthenticationModule" lockItem="true" />
                <add name="WindowsAuthenticationModule" lockItem="false" />

এই পরিবর্তনগুলি করার ফলে বিদ্যমান ওয়েব কনফিগারেশন সেটিংস আইআইএস এক্সপ্রেসের অ্যাপ্লিকেশন হস্ট ফাইলের মধ্যে থাকা ওভাররাইডের অনুমতি দেবে।


1
এই পরিবর্তনগুলি প্লাস একটি লগঅফ আমার জন্য কাজ করেছিল। কিছু ক্যাশে হয়েছে, কারণ বিজ্ঞপ্তি আইকন থেকে আইআইএস এক্সপ্রেস বন্ধ করা এবং ভিএস পুনরায় চালু করা কার্যকর হয় না। এই ত্রুটিটি সত্যই বিরক্তিকর, যখন প্রতি কয়েক মাস বা অর্ধ বছর পরে একটি নতুন ভিএম বা বিকাশকারী পিসি নির্মিত হয় occurs এটি সর্বদা অর্ধ দিন অবধি হারিয়ে যায় এবং সেটিংসের সাথে গোলমাল করে। সমস্যাটি হ'ল যদিও এই সেটিংসগুলি অবিলম্বে এটি ঠিক করা উচিত, এটি হ'ল না এবং এটি চারপাশে খেলার পরে হঠাৎ কাজ করে, খুব আশ্চর্যজনক এবং আমি এটি পছন্দ করি না। একটি লগঅফের পরে সুপারিশ করা হয়। পরের বার এটি ঘটে আমি আলাদা করার চেষ্টা করব, তবে এটি একটি খুব বিরক্তিকর ডিফল্ট।
টনি ওয়াল

6

আপনি আপনার ওয়েব প্রকল্পের জন্য প্রকল্পের বৈশিষ্ট্যগুলিও সংশোধন করতে পারেন, বাম ট্যাবগুলি থেকে "ওয়েব" চয়ন করতে পারেন, তারপরে সার্ভারের ড্রপ ডাউনকে "স্থানীয় আইআইএস" এ পরিবর্তন করতে পারেন। একটি নতুন ভার্চুয়াল ডিরেক্টরি তৈরি করুন এবং পছন্দসই হিসাবে আপনার সাইট / অ্যাপ পুল সেটআপ করতে আইআইএস ম্যানেজার ব্যবহার করুন।

আমি এই পদ্ধতিটি পছন্দ করি, কারণ আপনার স্থানীয়ভাবে স্থানীয়ভাবে পরীক্ষা করার জন্য স্থানীয় আইআইএস ভি ডিরেক্টরি (বা সাইট) থাকে। আপনি এইভাবে অন্য কোনও সাইটকে প্রভাবিত করবেন না।

ওয়েব প্রকল্পের সম্পত্তি


1

মনে হচ্ছে সঠিক উত্তরটি উপরের ব্যবহারকারীর দ্বারা সরবরাহ করা হয়েছে 143407। যাইহোক, নীল ওয়াটসন যেমন উল্লেখ করেছেন, অ্যাপ্লিকেশনহস্ট.কনফিগ ফাইলটি এখানে চলছে।

পরিবর্তনগুলি আসলে ভিএস প্রপার্টি ফলকে বা ফাইলটিতে অন্য কোনও জায়গায় করা যেতে পারে। এপ্লিকেশনহস্ট.কনফিগ ফাইলের নীচের অংশে অবস্থানের উপাদানগুলির একটি সেট। আইআইএস এক্সপ্রেসের প্রতিটি অ্যাপ্লিকেশানের মধ্যে এর একটি রয়েছে বলে মনে হয়। UI- এ সেটিংস পরিবর্তন করা ফাইলের এই বিভাগটি আপডেট করে। সুতরাং, আপনি হয় ইউআই এর মাধ্যমে সেটিংস পরিবর্তন করতে পারেন বা এই ফাইলটি সংশোধন করতে পারেন।

বেনাম লেখক বন্ধ এবং উইন্ডোজ লেখক সহ এখানে একটি উদাহরণ রয়েছে:

<location path="MyApp">
    <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

এটি ভিএস ইউআই এর সমতুল্য:

Anonymous Authentication: Disabled
Windows Authentication: Enabled

বর্তমান ভিএসে এটি কাজ করে না, এটি সর্বদা বলবে যে এটি অ্যাপ্লিকেশনহস্ত.কনফিগ মডিউলগুলি ব্যবহারকারী নথি এবং সমাধান .vs / কনফিগার পাথ উভয়ই আনলক করা রয়েছে। এছাড়াও এটি সত্য নয় যে এটিই একমাত্র স্থান, বৈশিষ্ট্য উইন্ডো থেকে সেটিংসটি আসলে ভিএস ওয়েব প্রকল্পের এক্সএমএলে সঞ্চিত। তবে এতে কিছু যায় আসে না কারণ এগুলি পরিবর্তন করাও সহায়তা করে না, অ্যাপ্লিকেশন হস্ট সর্বদা ওভাররাইড করে। এই পরিবর্তনগুলি কাজ করার জন্য একটি লগঅফ প্রয়োজন ছিল, এটাই।
টনি ওয়াল

0

F4 আমাকে সর্বদা এই প্যানেলে নিয়ে আসে না। এছাড়াও, প্রায়শই বলা হয় যে একটি ছবি হাজার শব্দের মূল্যবান।

এখানে চিত্র বর্ণনা লিখুন

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