CLR: .Net / Mono / Boo / Otros CLR > ASP .NET

 Configurar Xml

(1/2) > >>

Anonymous:
Hola,

Tengo una pequeña dudilla. Se puede configurar el atributo forms de authentication en un webconfig.xml hijo. Es decir, yo tengo mi webconfig.xml padre y una carpeta privada donde tengo las páginas que requieren autenticación. En dicha carpeta tengo un archivo webconfig.xml hijo que hereda las propiedades del padre y me gustaría redefinir el authenticaion para indicar que esta carpeta, a diferencia de la carpeta general de la aplicación, necesita autenticación.

Teneis alguna idea de si puedo hacerlo así o debo gestionar todo ese tema desde el webconfig.xml padre indicando que páginas son privadas y que páginas son públicas.

Gracias de antemano.

Anonymous:
Hola de nuevo, ya me las he arreglado para crear la authenticacion en el webconfig hijo, pero al ejecutar me encuentro con esto:

Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS.

Source Error:


Line 12:     <connectionStrings/>
Line 13:     <system.web>
Line 14:       <authentication mode ="Forms" >
Line 15:         <forms name ="Madridinmo"
Line 16:                loginUrl="Login.aspx"


Alguien sabe como puedo arreglarlo

sergiotarrillo:
Holas!

Lo que tienes que usar es el elemento location en el web.config (no webconfig.xml), en el padre, por ejemplo quieres dar acceso a todo  la carpeta  todos:


--- Código: Text ---&#60;configuration&#62;   &#60;location path=&#34;todos&#34;&#62;      &#60;system.web&#62;         &#60;authorization&#62;            &#60;allow users=&#34;?&#34;/&#62;         &#60;/authorization&#62;      &#60;/system.web&#62;   &#60;/location&#62;&#60;/configuration&#62; 
Más detalles: Elemento location (Esquema de configuración de ASP.NET). Me deje entender?

Saludos,

Anonymous:
Muchas gracias Sergio, ahora otro par de dudas (soy un poco novatillo en seguridad):

1: Lo que he leído me funciona para redirecionar a una página poniendo dicha página como "defaultUrl" en el web.config. Ahora yo quiero poder definir a dónde redireccionar en función de la contraseña. Es decir, cuando creo un nuevo usuario se genera una contraseña por defecto. Cuando este usuario se da de alta en el sistema por primera vez quiero redireccionarle a una página para que la cambie por una propia y que no pueda acceder a otra página privada hasta que no la cambie. Por tanto necesito decir a la aplicación dos cosas: por un lado que ese usuario se redirige a la página especial de cambio de contraseña, y por otro que ese usuario sólo puede entar en esa página privada mientras su contraseña sea la contraseña por defecto.

2: He estado echando un vistazo a esta página para controlar si se ha alcanzado el timeout de la sesión:

http://www.elguille.info/colabora/NET2005/...Session_End.htm

Y más o menos lo he acoplado en mi código. Lo que pasa es que tengo un pequeño problemilla con la condición de redirección al login de la clase virtual. Si dejo la condición tal cual me redirige al login sin haberse alcanzado el timeout y si la cambio

y, en lugar de igual a null, la digo distinto de null me funciona cuando el timeout no se ha acabado, pero cuando se llega al tiemout se vuelve a ejecutar el procedimiento de cargar página y no me manda a login, si no que me deja en la página que estaba cuando debería mandarme al login porque el timeout se ha acabado.

De todas formas te dejo el código porque yo lo estoy haciendo en VB y a lo mejor al traducirlo he metido la patita.

Este es el código de mi clase virtual (que es una clase de VB dentro de la carpeta App_Code en un aplicación de ASP.NET, lo cual no se si podrá hacer) que comprueba si el timeout se ha acabado:

******************************************************************************************
Public Class Sesion
    Inherits System.Web.UI.Page

    Public Overridable Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Response.AddHeader("Refresh",((Session.Timeout * 60) + 5).ToString)
        If (Not (Session("SesionActiva")) Is Nothing) Then
            Response.Redirect("Login.aspx")
        End If
    End Sub

End Class
******************************************************************************************

Y este es el código de la página donde ejecuto la llamada a la clase virtual para saber si el timeout se ha acabado antes de cargar dicha página:

****************************************************************************************************
Public Overrides Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    MyBase.Page_Load(sender, e)
End Sub
****************************************************************************************************

Espero respuestas.
Muchas gracias de antemano.

Gracias otra vez.
Espero tu respuesta.

sergiotarrillo:
Yo lo haría de esta forma:


--- Cita de: "KEWIAS" ---Ahora yo quiero poder definir a dónde redireccionar en función de la contraseña. Es decir, cuando creo un nuevo usuario se genera una contraseña por defecto. Cuando este usuario se da de alta en el sistema por primera vez quiero redireccionarle a una página para que la cambie por una propia y que no pueda acceder a otra página privada hasta que no la cambie. Por tanto necesito decir a la aplicación dos cosas: por un lado que ese usuario se redirige a la página especial de cambio de contraseña, y por otro que ese usuario sólo puede entar en esa página privada mientras su contraseña sea la contraseña por defecto.
--- Fin de la cita ---

Una pregunta elemental, si se va generar una contraseña y nunca la va usar (porque le estas obligando que la cambie), para que crearla?, no se, si me equivoque pero puede haber un requerimiento no explicado bien. En todo caso dejar que cuando se registre cree su contraseña, y esa use, para que voy a generarla si nunca la va usar :S.

Saludos,

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa