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

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

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