2016-04-11 32 views
0

Uçtan uca, Windows Kimlik Doğrulaması Windows Server 2012'de bir ASP.NET uygulamasında nasıl ayarlanıyor? IIS önceki sürümlerindeWindows Server 2012 IIS web sitesinde Powershell kullanarak Windows Kimlik Doğrulaması nasıl etkinleştirilir?

, sadece Web.Config yılında <authentication>, <identity> ve <authorization> ayarlarını olabilir ve onunla yapılabilir.

<!-- Web.Config --> 
<system.web> 
    ... 
    <authentication mode="Windows /> 
    <identity impersonate="false /> 
    <authorization> 
    <allow users="DOMAIN\user1" /> 
    <allow users="DOMAIN\user2" /> 
    <deny users="*" /> 
    </authorization> 

Şimdi, IIS sitesinde/webapp'un kendisinde kimlik doğrulamasını etkinleştirmenizi gerektiren ekstra bir güvenlik bileşeni var.

Window Server 2012 web sunucumuz için bir önyükleme komut dosyası yazıyor, IIS'de Powershell için yapılandırmayı tamamlamaya nasıl devam edeceğim?

NOT: Kendine bir yanıt vereceğim.

cevap

0

Yukarıda belirtilen Web.Config değişmesi gerekmeyecektir, bu ayarlar hala geçerli. Sorun, Windows kimlik doğrulaması sunucu düzeyinde varsayılan olarak kapatıldığından IIS'nin bu ayarlara uymayacağıdır. Öncelikle, Windows Kimlik Doğrulama özelliğini Web-Windows-Auth ve Sunucu Yönetim araçları -IncludeManagementTools'u yüklediğinizden emin olun.

Install-WindowsFeature "Web-Windows-Auth" -IncludeManagementTools ; 

Sonraki, en zaten "AuthSite" adlı sitenizi yarattı elle müdahale etti var varsayalım ve şimdi anonim kimlik doğrulamasını devre dışı ve Windows kimlik doğrulamasını etkinleştirmek istiyorum.

Import-Module WebAdministration ; 

# disable anonymous 
Set-WebConfigurationProperty ` 
    -filter "/system.webserver/security/authentication/anonymousAuthentication" ` 
    -PSPath "IIS:\" ` 
    -location "AuthSite" ` 
    -name "enabled" ` 
    -value "False" ; 

# enable Windows authentication 
Set-WebConfigurationProperty ` 
    -filter "/system.webserver/security/authentication/windowsAuthentication" ` 
    -PSPath "IIS:\" ` 
    -location "AuthSite" ` 
    -name "enabled" ` 
    -value "True" ; 

NOT: -PSPath ve -Location aksi takdirde bir kilitli bölüm sorunu karşılaşacak, (-PSPath değil sadece tam yol) kullanılmalıdır: https://stackoverflow.com/a/31416581/740575

FARKLILIK: Eğer sadece bir webapp oluştururken varsayalım "Varsayılan" sitesinde "AuthWebApp", sadece -location "Default/AuthWebApp", -PSPath ile değiştirin aynı kalabilir.