form验证最简单的一句web
FormsAuthentication.SetAuthCookie(”userName", false);服务器
web.config里加上 cookie
<machineKey validationKey="9912131415161718190a0b0c0d0e0f1011987654" decryptionKey="99225577bbaa9988" validation="SHA1" />
固然validationKey decryptionKey能够改。
这个用处其实就是定住秘钥,试验了一下,先验证了,把w3wp关闭或者应用池重启,若是没有这行,页面上用户就掉了,有这行页面用户就还在,说明没有这行每次w3wp运行就会随机生成秘钥。加上这行一方面用来多台负载均衡,就算单服务器能够能够防止应用池重启,前台掉用户。
另外 应该是
<forms name=".ASPXAUTH" cookieless="UseCookies" loginUrl="~/Home/Index" defaultUrl="~/HomePage" timeout="10" protection="All" slidingExpiration="true" enableCrossAppRedirects="true" />
slidingExpiration 若是设置false,就是只算开始时间+timeout ,不管中间是否有刷新,都不在更新,18:00 + 10分钟过时,到18:10必定过时。
设置了true,到timeout一半的时候,会刷新过时时间再加+timeout ,也就是 18:05时候刷新会到 18:15(仍是18:20,到时候再测下,反正会更新)
测试代码
public ActionResult Contact()
{
var formsIdentity = this.User.Identity as FormsIdentity;
var result =new Result {IsAuthenticated = this.User.Identity.IsAuthenticated,Name= this.User.Identity.Name};
if (formsIdentity != null)
{
result.Ticket = formsIdentity.Ticket;
result.Expiration = formsIdentity.Ticket.Expiration.ToString();
result.IssueDate = formsIdentity.Ticket.IssueDate.ToString();
}
return Json(
result
,JsonRequestBehavior.AllowGet);
}