驗證 Authentication
驗證 基本驗證 整合式Windows驗證 表單式驗證
基本驗證 透過IIS進行 安全性不高 (沒有編碼) 與Windows使用者資料庫進行比對
基本驗證 Step 1:設定IIS
基本驗證 Step 2:取消匿名存取與整合WINDOWS驗證,勾選基本驗證
基本驗證 <configuration> <system.web> Step 3:設定web.config <configuration> <system.web> <authentication mode="Windows" /> </system.web> </configuration>
基本驗證
整合式Windows驗證 透過IIS進行 使用Hashing技術 安全性較好
整合式Windows驗證 Step 1:勾選整合式Windows驗證
表單式驗證 Web.config中建立 名稱為demo 的 cookie <authentication mode="Forms"> <forms name=".demo" loginUrl="login.aspx" protection="All" timeout="60" /> </authentication> <machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1" /> <authorization> <deny users="?" /> </authorization>
表單式驗證 建立login.aspx //登入按鈕 using System.Web.Security; private void Button1_Click(object sender, System.EventArgs e) { if(Page.IsValid) //檢查是否驗證完畢 if(TextBox1.Text=="rcjao" && TextBox2.Text=="123") FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, false); }else{ Response.Write("wrong!"); } 是否使用保存式 使用者名稱
表單式驗證 建立default.aspx // 登出按鈕 using System.Web.Security; private void Button1_Click(object sender, System.EventArgs e) { FormsAuthentication.SignOut(); //登出 Server.Transfer("login.aspx"); }
表單式驗證+資料庫 是否使用保存式 使用者名稱 修改login.aspx //登入按鈕 using System.Web.Security; using System.Data.SqlClient; private void Button1_Click(object sender, System.EventArgs e) { if(Page.IsValid) SqlConnection conn=new SqlConnection("workstation id=MYCHAT-851ACB0C;packet size=4096;user id=ww;data source=MYCHAT-851ACB0C;persist security info=True;initial catalog=wealth;password=ww"); conn.Open(); SqlCommand cmd=new SqlCommand("select * from member where login_id='" + TextBox1.Text + "' and login_pwd='" + TextBox2.Text + "'",conn); SqlDataReader dr=cmd.ExecuteReader(); if(dr.Read()) FormsAuthentication.RedirectFromLoginPage(TextBox2.Text,false); }else{ Response.Write("wrong!"); } 是否使用保存式 使用者名稱