La página de registro sigue redireccionando a la página de inicio de sesión en ASP.NET C#

programación


Esto solo sucede cuando tengo la autenticación configurada en mi archivo Web.config. Necesito esto para iniciar sesión. Sin embargo, ¿cómo puedo detener esta redirección?

Web.config

HTML
<authentication mode="Forms">
      <forms loginUrl="~/Login.aspx"
        name=".ASPXFORMSAUTH" />
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>

Y aquí está la URL que obtengo:

http://localhost:49575/(S(teuci1cr4nob5isksiq5rsf))/Login.aspx?ReturnUrl=%2fRegister.aspx

Solución 1

Esto se debe a que el servidor intentará permitir que el usuario inicie sesión desde esta única página cuya ubicación ha especificado.

Hay dos formas de minimizar el problema. La primera solución es proporcionar un formulario de registro e inicio de sesión en la misma página. De esta manera, puede crear una sola página y el usuario podrá registrarse o iniciar sesión desde la misma página. Esto se utilizará si desea seguir con este método de trabajo web.config.

Sin embargo, otro método es utilizar la clase WebSecurity y su propiedad IsAuthenticated para determinar si el usuario ha iniciado sesión o no y luego redirigirlo. También podrá determinar en qué página se encuentra el usuario (registrarse o iniciar sesión; si está iniciando sesión o registrándose, no redirija; de lo contrario, rediríjalo a la página de inicio de sesión o registro) y luego simplemente déjelo iniciar sesión mediante un simple registro. . Como esto,

C#
if(!WebSecurity.IsAuthenticated) {
   // No user logged in, 
   Response.Redirect("~/Login.aspx");
}

Esto funcionaría. Personalmente, me gustaría utilizar el segundo método para verificar los valores y el estado de los usuarios en el código subyacente.

コメント

タイトルとURLをコピーしました