ASP.NET表單身份驗(yàn)證的實(shí)現(xiàn)方法
asp.net基于表單的身份驗(yàn)證,可以防止用戶跳過登錄、直接輸入U(xiǎn)RL訪問頁面,而且不像Session控制那樣每個(gè)頁面都得寫代碼。
ASP.NET表單身份驗(yàn)證***步:配置web.config(web.config中一定要注意大小寫,一般鍵是camelCasing風(fēng)格,值是PascalCasing風(fēng)格)
- < system.web>
- < authentication mode="Forms">
- < forms name="MainForm" loginUrl="Frame/Login.aspx" protection="All" timeout="60"/>
- < /authentication>
- < authorization>
- < deny users="?"/>< !--一定不要寫< allow users="*"/>否則匿名訪問時(shí)不會(huì)跳轉(zhuǎn)到登錄頁面-->
- < /authorization>
- < /system.web>
ASP.NET表單身份驗(yàn)證第二步:登錄按鈕事件中,驗(yàn)證用戶名、密碼通過后,
- // 記錄Cookie
- FormsAuthentication.SetAuthCookie(loginName, false);
- // 重定向頁面
- Response.Redirect("Frame.htm");
如果想重定向到用戶想訪問的頁面,也就是被轉(zhuǎn)到登錄頁面前訪問的頁面,需要獲得剛開始時(shí)用戶訪問的頁面URL,可以用以下方法:
- String redirectionUrl = FormsAuthentication.GetRedirectUrl(loginName,false);
然后判斷獲得的URL是否是登錄頁面或index頁面,如果是則redirectionUrl重新賦值為正常登錄時(shí)訪問的頁面URL。
- if(redirectionUrl.ToLower().IndexOf("login.aspx") > 0)
- redirectionUrl = "Frame.htm";
ASP.NET表單身份驗(yàn)證完成:***重定向頁面就可以了。
- Response.Redirect(redirectionUrl);
【編輯推薦】