Ejemplo Umbraco - Razor Login

En este ejemplo mostraremos como crear un Razor para el ingreso de usuarios, este fue creado por Jonas Eriksson 

Entonces el ejemplo consta de 2 partes, la creacion de un usuario en nuestra seccion Members y el codigo Razor para hacer Login.

Creacion de Usuario seccion Members:

nos dirijjimos a la seccion de Members en Umbraco y creamos un MemberType luego creamos un Member Group y por ultimo un Member o usuario.

En la siguiente imagen se muestra la creación usuario en la seccion de Members

Umbraco Ejemplo - Members Crear Usuarios

En la siguiente imagen se muestra la sección Members luego de crear todo:

Umbraco Ejemplo - Members Usuarios

 

Codigo Razor:

 

 Codigo fuente:

@using System.Web  
@using System.Web.Security
@helper LoginForm()
{
  <form method="post">
    <div><label for="name">Username:</label>
    <input type="text" id="username" name="username"/></div>
    <div><label for="password">Password:</label>
    <input type="password" id="password" name="password"/></div>
    <div><input type="submit" id="submit" name="submit" value="login"/></div>
  </form>
}

@helper LogoutForm()
{
  <form method="post">
    <input type="submit" id="submit" name="submit" value="logout"/>
  </form>
}

@helper Message(string message)
{
  <p>@message</p>
}

<style type="text/css">
 p,label {color:black;}
</style>

@{
  var isSubmitLogin = (IsPost && Request["submit"]=="login");
  var isSubmitLogout = (IsPost && Request["submit"]=="logout");
  var currentUser = Membership.GetUser();
  var requestedUrl = Request.Url.PathAndQuery.ToString(); // Model.Url;
  if (Request["ReturnUrl"]!=null)
  {
    requestedUrl = Request["ReturnUrl"];
  }

  if (currentUser!=null)
   {    
    if (!isSubmitLogout)
     {
       @Message("Logged in : " + currentUser.UserName)
       @LogoutForm()
     }
    else
     {
       FormsAuthentication.SignOut();
       FormsAuthentication.RedirectToLoginPage();
     } 
   }

  if (currentUser==null)
   {
    if (!isSubmitLogin)  
     {
       @LoginForm()
      }
    else
     {
      string username=Request["username"];
      string password=Request["password"];
      if (Membership.ValidateUser(username, password))
      {
        // RedirectFromLoginPage does not work that good within the Umbraco context
        // FormsAuthentication.RedirectFromLoginPage(username, true);

        FormsAuthentication.SetAuthCookie(username, true);

        // Redirect to / refresh the requested page
        Response.Redirect(requestedUrl);
      }
      else
      {
        @Message("Login failed for " + username)
        @LoginForm()
      }
     }       
    }
  }

 

 

Referencias:

http://our.umbraco.org/projects/website-utilities/razorlogin

Video que muestra como instalar el componente: http://screencast.com/t/nPnXqvgDj

Codigo Fuente : http://gist.github.com/874194

 

Comentar