前段時間在學習後台登入驗證的問題,聽說forms身分識別驗證要比較的方便,於是研究了一番,結果發現網上的資料都不全(或者不適合初學者),出了好多的問題,現在我把My Code公布出來,希望能給大家一些協助.
我的後台檔案全部放在admin目錄下,背景登入口為admin_login.aspx,現在要實現的功能是:
不能直接存取admin目錄下除了admin_login.aspx(即登入口)檔案以外的檔案,但是前台的檔案,比如default.aspx等,要不受forms驗證的影響,也就是說,即使沒有登入,訪問default.aspx時,也不能轉到admin_login.aspx.
下面說一下實現過程:
在web.config檔案中,設為forms身分識別驗證:
<authentication mode="Forms">
<forms name=".LoginUser" loginUrl="admin/admin_login.aspx" protection="All" timeout="30" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
然後在</system.web>後還要加入:
<location path="admin">
<system.web>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
</location>
否則無論訪問哪個檔案,都會轉到登入口的,加了上面這段代碼後,就只有訪問admin目錄下的檔案時可能轉到admin_login.aspx,以上就是web.config檔案中的設定,接下來就是後台登入按鈕的代碼了:
//檢查登入的使用者名稱和密碼是否正確,我用的是從資料庫中檢查的方法,你可以用其它方法,這裡就不說了.
if (OpenData.CheckUser(strSql,"ToEmpire_UserInfo"))
{
//儲存登入的使用者名稱
Session["LoginUser"] = strLoginUser;
//這一句就是關鍵,strLoginUser為登入框中的使用者名稱.false為不永久記錄.
FormsAuthentication.RedirectFromLoginPage(strLoginUser,false);
Response.Redirect("admin_index.aspx");
}
以上就是forms身分識別驗證的實現過程了,希望對各位有用.如果有什麼疑問,請在這裡留言,我看到的話會回複的.