Ya no necesitas buscar más por todo internet ya que llegaste al lugar indicado, poseemos la respuesta que quieres y sin complicarte.
Solución:
Tuve el problema de tratar con secciones bloqueadas y la respuesta aceptada propone abrir una GUI para resolverlo, lo que intento evitar con PowerShell en primer lugar.
Respuesta corta
Habilitar la autenticación de Windows y deshabilitar la autenticación anónima
$iisSiteName = "Default Web Site"
$iisAppName = "MyApp"
Write-Host Disable anonymous authentication
Set-WebConfigurationProperty -Filter '/system.webServer/security/authentication/anonymousAuthentication' -Name 'enabled' -Value 'false' -PSPath 'IIS:' -Location "$iisSiteName/$iisAppName"
Write-Host Enable windows authentication
Set-WebConfigurationProperty -Filter '/system.webServer/security/authentication/windowsAuthentication' -Name 'enabled' -Value 'true' -PSPath 'IIS:' -Location "$iisSiteName/$iisAppName"
Tratar con secciones bloqueadas
Como se indica en la documentación de IIS:
Las secciones de autenticación generalmente están bloqueadas, es decir, no pueden escribirse en un archivo web.config, sino que deben escribirse en el archivo central applicationhost.config.
tenemos que usar -PSPath
y -Location
parámetros
Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath IIS: -location DemoSite/DemoApp
No necesitas separar -PSPath
y -Location
parámetros Puedes combinarlos así:
-PSPath "IIS:Sites$SiteName$AppName"
Así que el comando real se verá así:
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/windowsAuthentication" -Name Enabled -Value True -PSPath "IIS:Sites$SiteName$AppName"
Tenga en cuenta que puede encontrarse con este error:
Set-WebConfigurationProperty: esta sección de configuración no se puede usar en esta ruta. Esto sucede cuando la sección está bloqueada en un nivel principal. El bloqueo es predeterminado (overrideModeDefault=”Deny”) o se establece explícitamente mediante una etiqueta de ubicación con overrideMode=”Deny” o el legado allowOverride=”false”.
Tomfanning en ServerFault proporcionó la solución aquí. He repetido sus pasos aquí:
- Administrador de IIS abierto
- Haga clic en el nombre del servidor en el árbol de la izquierda
- Panel derecho, sección Gestión, haga doble clic en Editor de configuración
- En la parte superior, elige la sección system.webServer/security/authentication/anonymousAuthentication
- Panel derecho, haga clic en Desbloquear sección
- En la parte superior, elige la sección system.webServer/security/authentication/windowsAuthentication
- Panel derecho, haga clic en Desbloquear sección
Si entiendes que ha resultado de utilidad este post, nos gustaría que lo compartas con el resto entusiastas de la programación y nos ayudes a difundir esta información.