原文連結:http://support.microsoft.com/default.aspx?scid=kb;en-us;301240
這篇文章引用到了Microsoft .NET類庫中的以下名空間:
System.Data.SqlClient
System.Web.Security
-------------------------------
任務:
摘要:
1.要求
2.用Visual C#.NET 建立一個ASP.NET 應用程式
3.在Web.config檔案裡配置安全設定
4.建立一個資料庫表範例來存放使用者資料
5.建立Logon.aspx頁面
6.編寫事件處理代碼來驗證使用者身份
7.建立一個Default.aspx頁面
8.附加提示
摘要
這篇文章示範了如何?通過資料庫儲存使用者資訊來實現基於表單的驗證.
(一)要求
需要以下工具來實現
1.Microsoft Visual Studio.NET
2.Microsoft Internet Information Services(IIS) version 5.0 或者更新
3.Microsoft SQL Server
(二)用C#.NET建立ASP.NET應用程式
1.開啟Visual Studio.NET
2.建立一個新的ASP.NET Web應用程式,並且指定名稱和路徑.
(三)在Web.config檔案裡配置安全設定
這一節示範了如何通過添加和修改<authentication>和<authorization>節點來配置ASP.NET應用程式以實現基於表單的驗證.
1.在解決方案視窗裡,開啟Web.config檔案.
2.把authentication模式改為Forms(註:預設為windows)
3.插入<Forms>標籤,並且填入適當的屬性.(請連結到在文章最後列出的MSDN文檔或者QuickStart文檔來查看這些屬性)先複製下面的代碼,接著再把它粘貼到<authentication>節:
<authentication mode="Forms">
<form name=".ASPXFORMSDEMO" loginUrl="logon.aspx" protection="All" path="/" timeout="30"/>
</authentication>
(註:如果不指定loginUrl,預設為default.aspx)
4.通過加入以下節點實現拒絕匿名訪問:
<authentication>
<deny users="?"/>
<allow users="*"/>
</authentication>
(四)建立一個資料庫表範例來存放使用者資料
這一節示範了如何建立一個樣本資料庫來存放使用者名稱,密碼,和使用者角色.如果你想要實現基於角色的安全就有必要在資料庫中添加一個存放使用者角色的欄位.
1.開啟記事本。
2.把下面這段指令碼複製到記事本然後儲存:
if exists (select * from sysobjects where id =
object_id(N'[dbo].[Users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Users]
GO
CREATE TABLE [dbo].[Users] (
[uname] [varchar] (15) NOT NULL ,
[Pwd] [varchar] (25) NOT NULL ,
[userRole] [varchar] (25) NOT NULL ,
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Users] WITH NOCHECK ADD
CONSTRAINT [PK_Users] PRIMARY KEY NONCLUSTERED
(
[uname]
) ON [PRIMARY]
GO
INSERT INTO Users values('user1','user1','Manager')
INSERT INTO Users values('user2','user2','Admin')
INSERT INTO Users values('user3','user3','User')
GO
3.開啟Microsoft SQL Server,開啟查詢分析器,在資料庫列表裡選擇Pubs資料庫,然後把上面的指令碼粘貼過來,運行。這時會在Pubs資料庫裡建立一個將會在這個樣本程式中用到的樣本使用者表。