• Jueves 13 de Junio de 2024, 16:02

Autor Tema:  Configurar Xml  (Leído 1528 veces)

Anonymous

  • Visitante
Configurar Xml
« en: Miércoles 11 de Abril de 2007, 21:29 »
0
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

  • Visitante
Re: Configurar Xml
« Respuesta #1 en: Jueves 12 de Abril de 2007, 22:31 »
0
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

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Configurar Xml
« Respuesta #2 en: Sábado 14 de Abril de 2007, 06:38 »
0
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
  1. &#60;configuration&#62;
  2.    &#60;location path=&#34;todos&#34;&#62;
  3.       &#60;system.web&#62;
  4.          &#60;authorization&#62;
  5.             &#60;allow users=&#34;?&#34;/&#62;
  6.          &#60;/authorization&#62;
  7.       &#60;/system.web&#62;
  8.    &#60;/location&#62;
  9. &#60;/configuration&#62;
  10.  

Más detalles: Elemento location (Esquema de configuración de ASP.NET). Me deje entender?

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Anonymous

  • Visitante
Re: Configurar Xml
« Respuesta #3 en: Martes 17 de Abril de 2007, 21:52 »
0
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

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Configurar Xml
« Respuesta #4 en: Miércoles 25 de Abril de 2007, 05:52 »
0
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.

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,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Anonymous

  • Visitante
Re: Configurar Xml
« Respuesta #5 en: Miércoles 25 de Abril de 2007, 12:00 »
0
Hola sergio, muchas gracias primeramente.

El tema es que la aplicación es un poco rara. El usuario no se registra el mismo, un administrador le crea la cuenta y es por eso que se crea una contraseña por defecto (igual para todos los nuevos usarios), para que el administrador no sepa cual es la contraseña final del usuario nuevo. Entonces, la primera vez que el usuario intenta logarse con su usuario y contraseña (por defecto) la aplicación le redirige a la página de cambiar password para que sea lo primero que haga.

¿Está mas claro ahora?, En cuanto a la segunda pregunta (la larga) ¿alguien sabe algo?

Gracias otra vez.

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Configurar Xml
« Respuesta #6 en: Jueves 26 de Abril de 2007, 17:57 »
0
de alguna manera tienes que saber que esa contraseña es la autogenerado o la del el mismo, tienes que crear un nuevo campo nuevo, tipo bit 1, si es nuevo, y 0 si no.

Ahora entonces todo usaurio nuevo con la contraseña autogenerado se pone a 1. Ahora en el login, vas a comprobar si ese dato es 1, y si es no lo logeas ( y si sus datos son validos), lo mandas al cambiar password. Y como no estará logueado no entrará a la zona privada. En el formulario de cambiar password pones el campo nuevo a 0.

Ahora en el login compruebas este nuevo campo, y si es el user con su password, y si es el correcto llamas a FormsAuthentication.RedirectFromLoginPage.

Ahora con tu pregunta dos, sólamente quieres saber si tiempo de sesión termina y de ser así mandarlo a un determinada página?

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Anonymous

  • Visitante
Re: Configurar Xml
« Respuesta #7 en: Jueves 26 de Abril de 2007, 18:35 »
0
Si eso es lo que quería saber, pero ya lo tengo hecho. Muchas gracias por tu ayuda, me ha servido de mucho.