2014-09-29 23 views
8

Tüm statik HTML dosyalarının bir klasörünün güvenliğini sağlama ihtiyacım var. Amaç, kullanıcının kimliği doğrulanmadıkça ve gerekli role sahip olmadıkça bu dosyalara erişememesidir.ASP.NET MVC'de Statik Dosyalar için Yetkilendirme O/Owin

OWIN kullanarak çerez tabanlı kimlik doğrulaması oluşturduk, ancak ne yaptığım önemli değil Klasörde kimlik doğrulaması gerektirecek şekilde yapılan değişikliklerin doğru kombinasyonunu anlayamıyorum.

İlk sorun, IIS'nin ASP.NET'i tamamen atlayıp yalnızca dosyaları sunmasıdır. Bence runAllManagedModulesForAllRequests değerini true olarak ayarlayarak bunun bir yolu var. Ama oradan nereye giderim?

Web.config dosyasında, uygun rolleri gerektirmek için doldurma öğelerini denedim, ancak yalnızca HER istekte bulunulmasına neden oluyor (büyük olasılıkla doğru tanımlama bilgisini veya bir şeyi incelemediği için).

Bütün günümü buna harcadım ve aklımı kaybetmek üzereyim.

Bu problemi kim çözdü? Eğer durak bu kaldırmak varsayılan statik dosya işleyicisi istiyoruz ve her isteğe göre MVC/Owin tarafından serverd ise

+0

'IHttpHandler' öğesini uygulayan bir sınıf oluşturun ve güvenliğinizi buraya koyun. Bkz. Http://stackoverflow.com/q/1146652 –

+0

Bu senaryoda, rol kontrolümüzü ve bunun gibi yolları RouteHandler'a koyardım? Olumlu değilim, ama bu böyle bir şeyin doğru yeri gibi görünmüyor. –

+1

Ardından dosyayı standart bir denetleyici yönteminden sunun. Muhtemelen böyle yapardım. İstediğiniz güvenlik ile ön yükleyebilirsiniz ve MVC tanrıları tatmin olur. –

cevap

3
  1. IIS, statik dosyaları çekiyor. dinle/statik dosyalar web.config için dosyayı bu eklemek varsayılan statik dosya işleyicisi kaldırmak için

bulunduğu harita rotayı:

<configuration> 
    <system.webServer> 
     <handlers> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
</configuration> 
statik dosya işleme ve yetkilendirme Kumandanızda yapmak daha
  • +0

    Bunu açısal çalışmak için nasıl alabilirim? Web uygulamam, Tipcript ile Angular 1.6'da yazılmıştır. StaticFile modülünü kaldırırsam, index.html sunulmaz ve her şey dağılır. Sadece ** attachments ** klasörüne ve sunucu statik/medya dosyalarına erişimi yalnızca yetkili kullanıcılara kısıtlamanız gerekiyor. Herhangi bir fikir? – Nexus

    +0

    bir göz atın, bu size yardımcı olabilir https://stackoverflow.com/a/11258217/715224 –

    +0

    Sen bir ahbapsın! Çok teşekkürler, lemme bir göz atın ve bir deneyin. Çok minnettarım. – Nexus

    İlgili konular