5

मैं एक एमवीसी 2 एप्लीकेशन विकसित कर रहा हूं और उस पर फॉर्म प्रमाणीकरण का उपयोग कर रहा हूं।फॉर्म प्रमाणीकरण के साथ मेरा एएसपी.नेट एमवीसी 2 एप्लीकेशन छवियों, शैलियों और लिपियों तक पहुंच को अवरुद्ध कर रहा है

स्क्रिप्ट, छवियों और शैलियों को सभी अनलॉक किए गए उपयोगकर्ताओं के लिए अवरुद्ध कर दिया गया है और इसके परिणामस्वरूप, लॉगिन पृष्ठ भयानक लग रहा है।

यह अच्छी तरह से स्थानीय काम करता है, समस्या तब होती है जब मैं सर्वर पर प्रकाशित करता हूं।

क्या किसी को कोई विचार है क्यों ????

पुनश्च: सर्वर आईआईएस 7.5 संस्करण

मेरे Web.config है:

<configuration> 
    <system.web> 
    <globalization culture="pt-BR" uiCulture="pt-BR" /> 
    <httpRuntime requestValidationMode="2.0"/> 
    <customErrors mode="Off" /> 
    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </assemblies> 
    </compilation> 

    <pages> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="Admin.Models" /> 
     </namespaces> 
    </pages> 

    <authentication mode="Forms"> 
     <forms name="AGAuth" loginUrl="~/Home/Login" timeout="120" /> 
    </authentication> 
    </system.web> 

    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

    <connectionStrings> 
     <add name="DBContainer" connectionString="metadata=res://*/Database.DB.csdl|res://*/Database.DB.ssdl|res://*/Database.DB.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=thewebserver.com,5158;Initial Catalog=thedatabase;Persist Security Info=True;User ID=theuser;Password=thepassword;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

</configuration> 

उत्तर

3

मैं बिल्कुल वैसा ही समस्या थी।

कारण आईआईएस प्रमाणीकरण कॉन्फ़िगरेशन बन गया। बेनामी प्रमाणीकरण (और फॉर्म प्रमाणीकरण को सक्षम करने और विंडोज प्रमाणीकरण को अक्षम करने) को सक्षम करके स्क्रिप्ट, शैलियों और छवियां लॉग इन होने पर पहुंच योग्य हो गईं।

+0

धन्यवाद मैन !!! इसने काम कर दिया! –

+3

मैं एक ही समस्या थी और पहले से ही बेनामी प्रमाणीकरण सक्षम है ... यह काम करने के लिए मैं बेनामी उपयोगकर्ता पहचान बदलना पड़ा पाने के लिए था - करने के लिए 'अनुप्रयोग पूल पहचान' (राइट क्लिक करें 'बेनामी प्रमाणीकरण'> संपादित करें) के बाद से है कि एक है मैंने अपने कोड तक पहुंच दी थी। – Trev

+0

ट्रेव - यहां – chaiwalla

0

यह अंधेरे में एक पूरा वार है, लेकिन छवि और सीएसएस फ़ोल्डरों पर अधिकार क्या हैं? यदि वे सेट हैं ताकि केवल अधिकृत लोग ही उन्हें प्राप्त कर सकें तो आपको एक समस्या है। आप उन फ़ोल्डरों पर सभी को, या .NET डिफ़ॉल्ट उपयोगकर्ता के अधिकारों को सेट करने का प्रयास कर सकते हैं और देख सकते हैं कि आपको क्या मिलता है।

+0

लेकिन जब मैं सब कुछ ठीक काम करता है के लिए लॉग इन। यदि आप '/ Content/Styles/redmond/jquery-ui-1.8.4.custom.css' तक पहुंचने का प्रयास करते हैं तो आपको लॉगिन पृष्ठ पर रीडायरेक्ट कर दिया जाएगा। इसका मतलब है कि यह प्रमाणीकरण के तहत सब कुछ डाल रहा है, यहां तक ​​कि छवियों और शैलियों –

+0

यह बिल्कुल सही है। मैं आप छवियों और सीएसएस फ़ोल्डरों पर अधिकार को दूर करने के लिए इतना है कि किसी को भी उन्हें भी देख सकते हैं जब लॉग इन नहीं की जरूरत है। एक बार आप से मुलाकात कर रहे फ़ोल्डर अधिकार में लॉग इन किया है और इस तरह आप उन्हें – griegs

+0

देख सकते हैं और मुझे लगता है कि कैसे करते हो? –

1

location element के लिए प्रलेखन पर नज़र डालें। मुझे लगता है कि पहला उदाहरण आपको जो चाहिए वह आपको देगा।

सुविधा के लिए, यहाँ उदाहरण बताया गया है:

<configuration> 
    <location path="Logon.aspx"> 
     <system.web> 
     <authorization> 
      <allow users="?"/> 
     </authorization> 
     </system.web> 
    </location> 
</configuration> 
+0

कोशिश की। काम नहीं किया:/ –

+0

यहां उदाहरणों में (http://support.microsoft.com/kb/316871) वे <उपयोगकर्ताओं को = "*" /> ... –

+0

दोनों तरीकों का प्रयास करते हैं। कुछ भी तो नहीं। –

0

अगर आप गलती से नकल या एक <authorization> तत्व यह है कि पहुँच को अस्वीकार किया जा सकता है है कि आपकी सामग्री फ़ोल्डर में कोई Web.config फ़ाइल बनाने की थी?

+0

किसी भी आंतरिक फ़ोल्डर –

4

सभी उपयोगकर्ताओं तक पहुंच की अनुमति देने के लिए एएसपीनेट को बताते हुए स्क्रिप्ट, छवियों और शैलियों फ़ोल्डर्स में एक web.config जोड़ें (सुनिश्चित करें कि आपके पास वहां कुछ भी नहीं है जिसे आप अज्ञात उपयोगकर्ताओं तक पहुंच नहीं चाहते हैं के लिए):

<configuration> 
     <system.web> 
     <authorization> 
      <allow users="*"/> 
     </authorization> 
     </system.web> 
</configuration> 

कारण के लिए के रूप में, निम्नलिखित asp.net प्रक्रिया सभी अनुरोधों को यह बताने के लिए आईआईएस कह रहा है:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
+0

पर कोई Web.config भी कोशिश नहीं की। काम नहीं करता है =/ –

+0

कश्मीर, तो इसकी बहुत संभावना फाइल सिस्टम अनुमतियाँ/greigs के – eglasius

+1

का जवाब यह मेरे लिए यह तय हो गई है, धन्यवाद! – Despertar

1

समूह IIS_WPG को फ़ोल्ड तक पहुंच पढ़ने की आवश्यकता है। अब यह ठीक काम करता है ...उम्मीद है कि इस मदद करता है किसी और

2

आप इस तरह की आवश्यकता फ़ोल्डरों की अनुमति सेट कर सकते हैं:

<location path="App_Themes"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="images"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
    <system.web> 
1

आप इस

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

की तरह आवश्यक फ़ोल्डरों की अनुमति सेट कर सकते हैं

0

मुझे भी वही समस्या थी और मैंने कोशिश की कि स्कॉट एच ने क्या सुझाव दिया लेकिन यह काम नहीं किया ...

यह पता चला है कि अनाम प्रमाणीकरण को असाइन किया गया उपयोगकर्ता IUSR पर सेट किया गया था ('अज्ञात प्रमाणीकरण' पर राइट-क्लिक करें - > संपादित करें), जिनके पास मेरे कोड तक पहुंच नहीं थी। मैंने एप्लिकेशन पूल पहचान तक पहुंच प्रदान की थी, इसलिए मैंने उस विकल्प का चयन किया, 'ओके' पर क्लिक किया, और बिंगो ने काम किया।

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