2008-11-25 26 views
14

Web uygulamamın farklı bölümleri için farklı kimlik doğrulama etiketleri ayarlama hakkında nasıl giderim? Ben olduğunu varsayalım:Web.config dosyasında çoklu/farklı kimlik doğrulama ayarları

/ 
/folder1/ 
/folder2/ 

her klasör için farklı <authentication/> etiketlerini belirtmek mümkün olabilir mi?

Klasör1'in Windows kimlik doğrulamasını kullanmasını ancak klasörün2 Forms kimlik doğrulamasını kullanmasını istiyorum.

Ben <location/> etiketinde yapıyor çalıştı ama bunu webserver'da yerleşik ile en azından VS 2008 aracılığıyla, bir <location/> etiketleri <authentication/> etiketi olabilir gibi görünmüyor.

Bu hatalar söyleniyor - Hata 3 Uygulama düzeyinin dışında allowDefinition = 'MachineToApplication' olarak kayıtlı bir bölümün kullanılması bir hatadır. Bu hata, IIS'de bir uygulama olarak yapılandırılmamış bir sanal dizinden kaynaklanabilir.

<location path="/folder1"> 
    <system.web> 
     <authentication mode="Forms" /> 
     <authorization> 
     <deny users="?"/> 
     </authorization> 
    </system.web> 
    </location> 

cevap

11

En üst düzey web.config ürününe yalnızca <authentication /> sahip olabilirsiniz. Birden fazla uygulama oluşturmanız gerekebilir. yani bir uygulama içinde bir uygulama oluşturabilir ve her birinde farklı kimlik doğrulama modları kullanabilirsiniz.

0

Ben o zaman klasörde pencereleri izinlerini ayarlama yoluyla pencereleri erişimini kontrol

<allow users="*" /> 

için folder1 üzerinde form kimlik doğrulama yetki ayarlayabilirsiniz düşünüyorum.

Denemedim, ama bunun neden işe yaramayacağını düşünemiyorum.

1

Bu ayarlar yalnızca ASP.Net uygulamanızın kök düzeyinde geçerlidir. Bir alt klasördeki farklı ayarları kullanmak için IIS'ye gitmeniz ve bu alt klasörün yeni bir uygulama olmasını ayarlamanız gerekecektir.

Bunu yaptıktan sonra, klasörün IIs yöneticisinde farklı bir simge olacaktır. Alt klasörünüzün içinde yeni bir web.config dosyası oluşturun ve yeni kimlik doğrulama ayarlarını buraya ekleyin.

Daha fazla bilgi için: Creating Applications.

+0

Doğru, ancak VS2008 hata ayıklayıcısında olduğu gibi, bu alt klasörleri uygulama klasörleri olarak ele alamıyor, bir IIS sunucusuna –

+0

yüklenerek test etmem gerekiyor. Visual Studio web sunucusunda yerleşik kullanıyorsanız evet, doğru, uygulamayı IIS'de kurmanız gerekecek. –