5

मैंने अभी एएसपी.नेट एमवीसी 5 (मैंने पहले से ही पिछले संस्करणों का उपयोग किया है) का उपयोग शुरू किया है और मेरे पास एक बहुत ही अजीब मुद्दा है: मैंने एक बनाया विजुअल स्टूडियो 2013 (पूरी तरह अद्यतन) एएसपी.NET टेम्पलेट का उपयोग कर नई वेबसाइट। टेम्पलेट विकल्पों के लिए मैंने एमवीसी टेम्पलेट, "व्यक्तिगत उपयोगकर्ता खाते" प्रमाणीकरण प्रकार, कोई क्लाउड होस्टिंग नहीं चुना है, और कोर एमवीसी लाइब्रेरी की तुलना में कोई अन्य घटक नहीं चुना है। विकल्पों को सत्यापित करने के बाद, मैं सभी NuGet संकुल अद्यतन करता हूं। और उसके बाद मैं F5 दबाता हूं (बिना किसी नई प्रोजेक्ट फ़ाइलों को खोलने या संशोधित किए)।एएसपी.नेट एमवीसी 5: साइट टेम्पलेट का उपयोग करके लॉगिन पेज पर अंतहीन रीडायरेक्ट

ब्राउज़र एक अंतहीन पुनर्निर्देशन पाश की वजह से, केवल एक त्रुटि पृष्ठ दिखाने के लिए खुल जाता है: यूआरएल पता चलता है:

http://localhost:24585/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%252525<snip> 

फिर, यह शेयर, असंशोधित ASP.NET MVC टेम्पलेट के साथ है। मैं जाँच की थी जिसे प्रवेश यूआरएल कुकी प्रमाणन विकल्पों में परिभाषित किया गया है, और कहा कि अच्छा लग रहा है:

// Configure the sign in cookie 
app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
    LoginPath = new PathString("/Account/Login"), 
    Provider = new CookieAuthenticationProvider 
    { 
     // Enables the application to validate the security stamp when the user logs in. 
     // This is a security feature which is used when you change a password or add an external login to your account. 
     OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
      validateInterval: TimeSpan.FromMinutes(30), 
      regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
    } 
});    

केवल बात यह है कि हो सकता है डिफ़ॉल्ट वेबसाइट को तोड़ सकते थे वैश्विक web.config/machine.config फाइलों में कुछ है , हालांकि मैं आमतौर पर अपने देव बॉक्स पर उनके साथ गड़बड़ से बचने के लिए। NuGet संकुल को अद्यतन किए बिना टेम्पलेट लॉन्च करना समस्या को हल नहीं करता है। शायद एएसपी.NET पहचान lib के साथ कुछ गड़बड़ है, लेकिन मुझे वास्तव में यह पता नहीं है और मुझे मेरी समस्या से संबंधित कोई प्रासंगिक जानकारी नहीं मिली।

प्रश्न: क्या कोई जानता है कि समस्या क्या है, या कम से कम समस्या निवारण का सबसे अच्छा तरीका क्या है?

धन्यवाद

+0

आपको कम से कम अपना लॉगिन पेज '[AllowAnonymous] ' – tweray

+0

बनाने की आवश्यकता है लॉगिन पृष्ठ में साइट टेम्पलेट में पहले से ही' [AllowAnonymous] 'फ़िल्टर है। – Shtong

+0

कुछ कहीं कहीं लॉगिन कार्रवाई की आवश्यकता के लिए लॉगिन की आवश्यकता है। यदि आप लॉगिन कार्रवाई में पहले से ही [[अनुमति दें] 'जोड़ चुके हैं, तो लेआउट या व्यू द्वारा बुलाए जा रहे किसी भी बच्चे के कार्यों की जांच करें। यदि इनमें से कोई भी '[अधिकृत]' लागू करने वाले नियंत्रक में है, तो उन्हें '[अनुमति दें]' की भी आवश्यकता है। –

उत्तर

10

ठीक है तो एक अच्छी रात की नींद के बाद मैं खोजने क्या गलत है समाप्त हो गया: समस्या आईआईएस एक्सप्रेस विन्यास, जो किसी कारण से रीसेट नहीं था जब मैं एक नई परियोजना बनाई में था, और शायद एक विरासत में मिला पिछले परियोजना की सेटिंग्स। इसमें अनाम प्रमाणीकरण अक्षम था और Windows प्रमाणीकरण सक्षम था, जो टेम्पलेट द्वारा बनाए गए डिफ़ॉल्ट web.config के साथ संगत नहीं है, क्योंकि उसके पास प्रमाणीकरण मोड None पर सेट था। तो आईआईएस किसी संसाधन को सेवा देने से पहले विंडोज प्रमाणीकरण की उम्मीद कर रहा था, और वेबसाइट ने विंडोज प्रमाण-पत्रों के लिए नहीं पूछा था। और वहां हमारे पास अनंत लूप है।

टीएल; डीआर यदि आपको वही समस्या है, तो परियोजना गुणों की जांच करें (समाधान एक्सप्लोरर में प्रोजेक्ट का चयन करें और F4 दबाएं)। Anonymous Authentication प्रविष्टि Enabled पर सेट की जानी चाहिए, और Windows Authentication प्रविष्टि को Disabled पर सेट किया जाना चाहिए। ध्यान दें कि यह केवल तभी वैध है जब आप टेम्पलेट सेटिंग्स में Windows प्रमाणीकरण का चयन नहीं करते हैं!

+0

शुरुआती लोगों के लिए एक साइड नोट के रूप में, टेम्पलेट का उपयोग करने का अर्थ है कि आप जावास्क्रिप्ट आधारित डाटाबेसिंग का उपयोग करते हैं, और आपके AccountController.cs को वेब एपीआई के किसी भी उपयोग के लिए [अधिकृत करें] की आवश्यकता होती है जिसे आपके होम इंडेक्स फ़ाइल के ~/बंडल/नॉकआउट सेक्शन के माध्यम से बुलाया जाता है। : http://stackoverflow.com/questions/24269028/vs2013-asp-net-mvc-single-page-plplication-template-auto-redirection – JosephMCasey

संबंधित मुद्दे