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);
}