none
Modulo de Configuracion personalizado RRS feed

  • Pregunta

  • Hola a todos,

    Estoy desarrollando una aplicacion donde uso el esquema de usuarios y roles usando una base de datos que yo he creado, en esta aplicacion
    implemento la seguridad mediante los archivos web.config en diversas carpetas y todo funciona perfectamente, mi pregunta es:
    alguien ha desarrollado alguna seccion de configuracion que me permita modificar los permisos directamente en los diversos archivos web.config de la aplicacion(tal como lo hace la herramienta de administracion de sitio de asp.net)??
    martes, 12 de enero de 2010 22:19

Respuestas

  • Hola Ariel

    Puedes cambiar tranquilamente puedes ayudarte por el WebConfigurationManager (dale una mirada a sus métodos)
    Puedes tener ayuda en este articulo

    SOLO TEN EN CUENTA: (y va con mayúsculas)
    Que cuando modificas el web.config (de la carpeta raiz) la app se reinicia
    Por eso es conveniente en secciones que se modificaran extraerlas "en archivos de configuracion externos" 
    Algunas secciones (por ejemplo appconfig) pueden

        <appSettings configSource="appSettingsExterno.config" />
    Entonces modificas appSettingsExterno.config y la app no se reiniciara (si mal no recuerdo)
    Porque en las secciones tambien tienes una propiedad que se llama RestartOnExternalChanges, que por el nombre nos podemos dar cuenta que si cambia el archivo externo se reinicie o no la app. 
    Un poco curiosos: Si miramos el machine.config vemos esto:
                <section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
    Asi que tranquilamente pudes modificar el archivo externo y la app no se reiniciara

    TIPS : Seccion Personalizada basada en AppConfig
    Pero esto no lo necesitas, es para tener una seccion algo asi
      <miSeccionPersonalizada .... />
    Si es que la necesitas. Avisanos

    Lo que tu tienes es esto:
       - Configurar archivos y subdirectorios específicos

    Asi que para administrar tendrias que abrir el archivo de de configuracion de ese directorio
       (según el articulo mas arriba algo asi: WebConfigurationManager.OpenWebConfiguration("~/path/Carpeta1/web.config")



    Enlaces:
    --------------

    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja
    • Marcado como respuesta Ariel Camacho miércoles, 13 de enero de 2010 23:52
    martes, 12 de enero de 2010 23:00

Todas las respuestas

  • Hola Ariel

    Puedes cambiar tranquilamente puedes ayudarte por el WebConfigurationManager (dale una mirada a sus métodos)
    Puedes tener ayuda en este articulo

    SOLO TEN EN CUENTA: (y va con mayúsculas)
    Que cuando modificas el web.config (de la carpeta raiz) la app se reinicia
    Por eso es conveniente en secciones que se modificaran extraerlas "en archivos de configuracion externos" 
    Algunas secciones (por ejemplo appconfig) pueden

        <appSettings configSource="appSettingsExterno.config" />
    Entonces modificas appSettingsExterno.config y la app no se reiniciara (si mal no recuerdo)
    Porque en las secciones tambien tienes una propiedad que se llama RestartOnExternalChanges, que por el nombre nos podemos dar cuenta que si cambia el archivo externo se reinicie o no la app. 
    Un poco curiosos: Si miramos el machine.config vemos esto:
                <section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
    Asi que tranquilamente pudes modificar el archivo externo y la app no se reiniciara

    TIPS : Seccion Personalizada basada en AppConfig
    Pero esto no lo necesitas, es para tener una seccion algo asi
      <miSeccionPersonalizada .... />
    Si es que la necesitas. Avisanos

    Lo que tu tienes es esto:
       - Configurar archivos y subdirectorios específicos

    Asi que para administrar tendrias que abrir el archivo de de configuracion de ese directorio
       (según el articulo mas arriba algo asi: WebConfigurationManager.OpenWebConfiguration("~/path/Carpeta1/web.config")



    Enlaces:
    --------------

    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja
    • Marcado como respuesta Ariel Camacho miércoles, 13 de enero de 2010 23:52
    martes, 12 de enero de 2010 23:00
  • Muchas gracias Jose, voy a probarlo y despues te comento como me fue.
    miércoles, 13 de enero de 2010 16:43
  • confirmado la clave de todo es entrar a la seccion de configuracion deseada  en mi caso:

    AuthorizationSection 

    Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~/Ejecutivos");
            AuthorizationSection authorizationSection =(AuthorizationSection)configuration.GetSection("system.web/authorization");

    muchas gracias
    jueves, 14 de enero de 2010 0:03