[轉]在ASP.NET中如何用C#.NET實現基於表單的驗證(一)

原文鏈接: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數據庫裏創建一個將會在這個示例程序中用到的示例用戶表。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章