2011-09-29 30 views
8

Tengo que proteger con contraseña un directorio en un servidor de Windows. Se supone que la página muestra una lista de archivos ubicados en ese directorio. No tengo ningún conocimiento previo (solo trabajé con Apache antes) así que he intentado hackear algo juntos al buscar en Google. (Para alguien que sabe lo que están haciendo, estoy seguro de que esto parecerá ridículo)Carpeta de protección de contraseña con web.config

Lo que tengo ahora es un popup de inicio de sesión pero no hay una contraseña funcionando. Tenemos una tabla en nuestra base de datos de SQL para administradores, por lo tanto, recuperar el inicio de sesión de usuario desde allí o tener el inicio de sesión incrustado en el archivo de configuración está bien. Todo lo que necesito es que la carpeta esté protegida con contraseña.

Esto es lo que tengo ahora en mi archivo web.config que se encuentra en la carpeta que se supone que está protegida por contraseña.

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.web> 
     <authentication mode="Forms"> 
      <credentials passwordFormat="Clear"> 
       <user name="test" password="test" /> 
      </credentials> 
     </authentication> 
     <authorization> 
      <allow users="test" /> 
      <deny users="*" /> 
     </authorization> 
    </system.web> 
    <system.webServer> 
     <directoryBrowse enabled="true" /> 
     <security> 
      <authentication> 
       <anonymousAuthentication enabled="false" /> 
       <basicAuthentication enabled="true" /> 
       <windowsAuthentication enabled="false" /> 
      </authentication> 
     </security> 
    </system.webServer> 
</configuration> 

Esperemos que este es un problema simple y gracias de antemano por cualquier ayuda! :)

+0

Tienes una mezcla de autenticación básica y la autenticación de formularios pasando parece . Si espera que la prueba/prueba funcione en la ventana emergente, no lo hará. La autenticación básica necesita un nombre de usuario/contraseña de Windows que esté en el servidor, creo. O necesita ir por esa ruta o deshacerse de la autenticación básica e implementar el resto de la página FormsAuthentication: Login, etc. –

+0

¿Cree que todavía sería posible hacer un inicio de sesión 'personalizado' con sesiones, etc. y usar "directoryBrowse"? – hesselbom

+1

¿Es posible de alguna manera usar la ventana emergente como inicio de sesión en lugar de un formulario? – hesselbom

Respuesta

3

Prueba esto:

<configuration>  
    <system.web>  
     <authentication mode="Forms">  
      <credentials passwordFormat="Clear">  
       <user name="test" password="test" />  
      </credentials>  
     </authentication>  
     <authorization>  
      <allow users="test" />  
      <deny users="*" />  
     </authorization>  
    </system.web>  
    <location path="admin"> 
     <system.web> 
      <authorization>    
       <allow roles="admin" /> 
       <deny users="*"/> 
      </authorization> 
     </system.web> 
    </location> 
    <system.webServer>  
     <directoryBrowse enabled="true" />  
     <security>  
      <authentication>  
       <anonymousAuthentication enabled="false" />  
       <basicAuthentication enabled="true" />  
       <windowsAuthentication enabled="false" />  
      </authentication>  
     </security>  
    </system.webServer>  
</configuration> 

permite cifrar la información del usuario usando algo como esto:

aspnet_regiis.exe -pef "sectionName" C:\Path\To\Your\Application 
+0

¿Dónde pondría esto? ¿En un archivo de configuración en la raíz o en el archivo de configuración que mencioné en mi pregunta? ¿De dónde obtendría esto la información del usuario? – hesselbom

+1

Colóquelo en su archivo web.config, fuera de la sección system.web. –

+0

Edité mi respuesta para mostrarle dónde la colocaría. –

Cuestiones relacionadas