Cookie登录实例
首先新建一个简单的login.htm前端页面,利用nvelocity引擎模板。
<body>
<form action="Login.ashx" method ="post">
<table>
<tr><td>用户名:</td><td><input type ="text" name="UserName" value="$Model.UserName"</td></tr>
<tr><td>密码</td><td><input type="password" name="Password" value="$Model.Password"/></td></tr>
<tr><td></td><td><input type="submit" name="Login" value="登录" /></td></tr>
</table>
</form>
</body>
public class CommonHelper
{
/// <summary>
/// 用data填充模板渲染生成html返回
/// </summary>
/// <param name="templateName"></param>
/// <param name="data"></param>
/// <returns></returns>
public static string RenderHtml(string templateName, object data)
{
//模版引擎代码
VelocityEngine vltEngine = new VelocityEngine();//实例化一个velocity模版引擎
vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹
vltEngine.Init();
VelocityContext vltContext = new VelocityContext();
vltContext.Put("Model",data);//设置参数,在模板中可以通过$data来引用
//把person对象作为传入p
Template vltTemplate = vltEngine.GetTemplate(templateName);
System.IO.StringWriter vltWriter = new System.IO.StringWriter();
vltTemplate.Merge(vltContext, vltWriter);
string html = vltWriter.GetStringBuilder().ToString();//得到html这个模板
return html;
}
}
再建立一个login.ashx的一般处理程序。
public class Login : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string login=context.Request ["Login"];
//取出这个对象,并且盘算是否为空
if (string .IsNullOrEmpty (login ))
{
//取出cookie中的值
HttpCookie cookie2=context.Request .Cookies["Password"];
HttpCookie cookie=context.Request .Cookies ["UserName"];
string username;
if (cookie ==null )
{
username = "";
}
else
{
username = cookie.Value;
}
string password;
if (cookie2==null )
{
password = "";
}
else
{
password = cookie2.Value;
}
var data = new { UserName=username,Password=password };
context.Response.Write(CommonHelper .RenderHtml ("Login.htm",data));
}
else
{
string username=context .Request ["UserName"];
//新建cookie
HttpCookie cookie = new HttpCookie("UserName",username);
//设定过期的时限
cookie.Expires = DateTime.Now.AddDays(7);
context.Response.SetCookie(cookie);
//密码的
string password = context.Request["Password"];
//新建一个cookie实例
HttpCookie cookie2 = new HttpCookie("Password", password);
//设定周期
cookie2.Expires = DateTime.Now.AddDays(5);
//创建响应cookie
context.Response.SetCookie(cookie2);
context.Response.Write("登陆成功");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}


浙公网安备 33010602011771号