2013-09-26 15 views
15

, mvc4 (jilet) üzerinde örnek proje oluşturdum ve "x" adlı bir dizin oluşturdum ve içine "a.txt" bir metin dosyası koydum. Benim web configKullanıcının alt klasörlere ve dosyalara erişmesini nasıl reddedebilirsiniz? Yerel makinede

http://localhost:64471/x/a.txt 

i tüm kullanıcı bu yapılandırma ile "x" klasörüne erişmek için inkar:

http://localhost:64471/x/ 
: Kullanıcı bu isteği göndermek eğer

<location path="x"> 
<system.web> 
    <authorization> 
    <deny users="*"/> 
    </authorization> 
</system.web> 
Şimdi

, kullanıcı çalışır ve web yapılandırmasında formlar etiketinde tanımlanan URL'ye döndürür.

ancak kullanıcı bu isteği gönderdiğinizde: (tarayıcı metin dosyasının içeriğini gösterir)

http://localhost:64471/x/a.txt 

tarayıcıda metin dosyasını okuyabilir.

Kullanıcının "x" klasöründeki tüm dosya ve alt klasörlere erişmesini nasıl reddedeceğinizi öğrenmek istiyorum?

+0

Teorik olarak 'path =" x "' x klasörü altındaki her şeyi kısıtlamalıdır. Ne tür bir kimlik doğrulama kullanıyorsunuz? * Örneğin, Form kimlik doğrulaması * Buna ek olarak, bu 'konum' etiketini uygulamanın kök web.config veya web.config x klasöründe nerede saklıyorsunuz? – Win

+0

@Win'i kimlik doğrulaması kullanıyorum.Konumu etiketi – motevalizadeh

+0

altındaki kök dizinine yerleştirerek tüm dosyaları dahil et –

cevap

6

Kök web.config dosyasında path="x" ile test ettim. X klasörü altında her şeyi kısıtlıyor; Göz atmama bile izin vermeyecek ~/x. Giriş sayfasına yönlendiriliyordum.

Kök web.config dosyasında bunun gibi bir a.txt dosyasının tam yolunu deneyebilir misiniz? Hala çalışmıyorsa

<location path="x/a.txt"> 
    <system.web> 
    <authorization> 
     <deny users="*"/> 
    </authorization> 
    </system.web> 
</location> 

, aşağıdaki içeriğe sahip x klasörünün içindeki bir web.config oluşturmayı deneyebilirsiniz.

<?xml version="1.0"?> 
<configuration> 

    <location path="a.txt"> 
    <system.web> 
     <authorization> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
    </location> 

</configuration> 
10

Bu eski bir soru olduğunu biliyorum ama sorun yaşıyorsanız ve metin veya html dosyaları ile ilgileniyor, sen this stackoverflow soruya da bakmak isteyebilirsiniz. Kısacası

, kendi web.config için bu eklemeniz gerekebilir:

<system.webServer> 
    <modules> 
     <remove name="UrlAuthorization" /> 
     <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> 
    </modules> 
</system.webServer> 

kirk gibi noktaları göz, .txt ve .html dosyaları gibi dosyalar IIS değil ASP.NET tarafından işlenir, Bu yüzden yetki kuralları onlara uygulanmaz.

İlgili konular