2012-05-29 11 views
5

में फ़ोल्डरों की सुरक्षा मेरे पास मेरे सामग्री फ़ोल्डर में कुछ फ़ाइलें हैं जो मैं नहीं चाहता कि कोई उपयोगकर्ता अधिकृत किए बिना डाउनलोड करने में सक्षम हो। मैं किसी उपयोगकर्ता को टाइप करके फ़ाइल में क्यों पहुंचने से रोक सकता हूं ... सामग्री/{filename} पता बार में?एमवीसी

उत्तर

3

कुछ संभावनाएं हैं। पहले एक अपने web.config में <location> टैग का उपयोग कर में होते हैं:

<location path="Content"> 
    <system.web> 
     <authorization> 
      <deny users="?" /> 
     </authorization> 
    </system.web> 
</location> 

एक और संभावना है (उदाहरण के लिए App_Data फ़ोल्डर की तरह) जहां कोई नहीं पहुँच सकते हैं एक फ़ोल्डर के अंदर उन फ़ाइलों को रखा और फिर एक नियंत्रक कार्रवाई है जो उन फ़ाइलों की सेवा करेगा जो [Authorize] विशेषता से सजाए जाएंगे।

+0

कहाँ इस वेब में स्थित होगा सीधा लिंक से फ़ाइल का उपयोग कर सकते हैं। config? – user517406

+0

'<कॉन्फ़िगरेशन>' तत्व के अंदर और बाहर '' के अंदर। यह जड़ पर है। –

+1

ठीक है धन्यवाद, यह सीधे काम नहीं कर रहा है क्योंकि यह नहीं <उपयोगकर्ताओं को अनुमति दें = "?" /> :) – user517406

0

खैर एक ही रास्ता C:\inetpub\wwwroot

C:\temp\files की तरह कुछ करने के लिए यह परिवर्तन के तहत उन्हें होने के आईआईएस के संदर्भ से बाहर यह है करने के लिए है, तो बजाय है।

आपके डीबी में दस्तावेज़ नाम से जुड़ा एक GUID है और फ़ाइल को लिंक प्रदर्शित करने के लिए GUID का उपयोग करें।

आपके नियंत्रक कार्रवाई में आप केवल GUID स्वीकार करेंगे, फ़ाइल नाम प्राप्त करें और फिर अपनी प्रतिक्रिया में फ़ाइल की सेवा करें।

1

यह मेरे लिए काम नहीं करता है।

<configuration> 
    <appSettings> 
    ... 
    </appSettings> 
    <system.web> 
    ... 
    </system.web> 
    <system.webServer> 
    ... 
    </system.webServer> 
    <location path="Content"> 
     <system.web> 
      <authorization> 
       <deny users="?" /> 
      </authorization> 
     </system.web> 
    </location> 
</configuration> 

मैं अपने MVC 4.0 आवेदन, लॉगिन और लॉगआउट चलाने के लिए, किसी भी अनुप्रयोग तक नहीं पहुंच सकते, लेकिन अभी भी तरह

http://localhost:80966/Content/Files/home.jpg 

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

  • कोई संबंधित समस्या नहीं^_^