這篇文章引用到了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數據庫裡創建一個將會在這個示例程序中用到的示例用戶表。