LINQ to SQL 成員資格

成員資格

目標

安全的必要性

ASP.NET的安全模式

1. Windows驗證

2. Passport驗證

3. Form驗證

4. None驗證


安全的必要性


根據所請求資源的類型,IIS能夠自己處理請求,也可以不自己處理請求。如果資源請求一個ASPX頁面,則IIS將請求經過身份驗證用戶(或匿名用戶)的安全令牌一起傳遞給ASP.NET。接下來要發生的事情就是取決於ASP.NET的配置。


安全的必要性有三方面

1. 構造特殊的鏈接地址,導致文件內的數據泄露

2. 數據庫泄漏

3. 安全防範的首要策略:所有的HTTP訪問都要經過IIS,所以限制IIS的安全性是關鍵


ASP.NET的安全模式有三種授權方法:

1. Windows身份驗證:IIS驗證,在內聯網環境中非常有用

2. Passport身份驗證:微軟集中式身份驗證,一次登錄便可訪問所有成員站點,需要收費(一般不會使用)

3. Form窗體身份驗證:窗體驗證,驗證帳號/密碼,Web編程最佳最流行的驗證方式

4. None驗證:表示ASP.NET自己根本不執行身份驗證,完全依賴IIS身份驗證


身份授權模式


基於窗體的身份驗證是不允許用戶訪問整個應用程序或其特定資源的一種流行模式。使用它可以把登錄窗體直接放在應用程序中,這樣,終端用戶只需要把用戶名和密碼輸入到瀏覽器中的一個HTML窗體上即可。



認證和授權機制

認證是確定用戶身份的過程。在用戶通過了身份驗證後,開發人員就可以確定該用戶是否有權限繼續操作。如果沒有進行身份驗證,就不能進行實體的授權

授權是確定已驗證的用戶是否有權訪問應用程序中的某個部分、某個點或只訪問應用程序提供的特定數據集。


Form窗體驗證實例:


首先打開Microsoft Visual Studio 2010”程序,選擇文件“新建”——“項目”,彈出“新建項目”模版,創建“ASP.NET Web應用程序”,點擊“確定”,

在“WebApplication1”右鍵點擊選擇“添加”——“新建文件夾”更改名稱,然後在新建的文件夾中更改名稱,之後

WebApplication1”右鍵點擊“添加”——“新建項”彈出“添加新項”模板,然後點擊“Web”在另一邊選擇“Web窗體”,更改名稱,點擊“添加”。




具體代碼如下:

登錄頁面



具體代碼:
protected void Button1_Click(object sender, EventArgs e)
{
string name = TextBox1.Text;
string pwd = TextBox2.Text;
if (name == "admin" && pwd == "123")
{
FormsAuthentication.RedirectFromLoginPage(name, false); }
else
{
ClientScript.RegisterStartupScript(this.GetType(), "Login", "alert('用戶名或密碼不正確,請重新輸入');", true);
}

Web.config頁面:

<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="Default.aspx">
</forms> </authentication>
<authorization>
<deny users="?"/>
</authorization>

兩個方式的登陸 方法:

Login.aspx

protected void Button1_Click(object sender, EventArgs e)
{
string name = TextBox1.Text;
string pwd = TextBox2.Text;
// 多個驗證登錄方式
if (FormsAuthentication.Authenticate(name,pwd))
{
FormsAuthentication.RedirectFromLoginPage(name, false);
} else
{
ClientScript.RegisterStartupScript(this.GetType(), "Login", "alert('用戶名或密碼不正確,請重新輸入');", true);
}

Web.config頁面

<authentication mode="Forms"> <forms loginUrl="Login.aspx" defaultUrl="Default.aspx"> <credentials passwordFormat="Clear">
<user name="admin" password="123 "/>
<user name="user" password="456"/>
</credentials> </forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>

實現方法:


加密的方式:

Login.aspx


protected void Button1_Click(object sender, EventArgs e)
{
string name = TextBox1.Text;
string pwd = TextBox2.Text; if (name == "admin" && pwd == "123")
{ Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("123", "MD5"));
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "Login", "alert('用戶名或密碼不正確,請重新輸入');", true);
}

Web.config頁面

<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="Default.aspx"> <credentials passwordFormat="MD5">
<user name="admin" password="202CB962AC59075B964B07152D234B70 "/>
<user name="user" password="456"/>
</credentials> </forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>


實現的方法:

發佈了39 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章