程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET基於角色的窗體安全認證機制

ASP.NET基於角色的窗體安全認證機制

編輯:關於ASP.NET

簡介:

ASP.NET 中窗體認證是一個功能非常強大的特性,只需要很少的代碼就可以實現一個簡單的平台無關的安全認證系統。

但是,如果你需要一個更復雜更有效的認證機制,那麼你就要把眾多用戶分成用戶群組,以利用它的靈活性。Windows 集成認證提供了這種認證機制,但它使用的是 NTLM,即Windows NT LAN Manager,因而它不是跨平台的。現在越來越多的人使用 Linux 系統,而 Mozilla Forefox 浏覽器用戶也越來越多,我們肯定不能把這些人拒之門外,因此我們尋求另外的認證機制。有兩個選擇:一是為網站劃分多個區域,提供多個登錄頁面,強迫用戶一個一個的去注冊和登錄;二是把用戶分組,並且限制特定用戶組對某頁面或者某區域訪問的權限。後者當然是更好的選擇。通過分配角色給各個用戶,我們能夠實現這種功能。

微軟為.NET平台留下了窗體認證中基於角色的認證機制,但是我們必須自己去實現它。本文力求覆蓋窗體認證中基於角色的認證機制的一些基本的東西,比如它的概念,它的實現,如何在Web應用程序中應用等。

必要准備:

我們首先要建立一個數據庫,一個Web應用項目,幾個不同安全級別的機密目錄,以及幾個ASP.NET頁面。當然你也可以在你現有的Web應用項目中添加這些。

1、創建數據庫

首先要選擇你需要使用的數據庫管理系統 DBMS。本文使用 SQL Server 2000。

在實際應用項目的數據庫中,一般都會有用戶數據表 Users,它可能包括用戶唯一標記:UserID,用戶名:UserName,密碼:Password,用戶的郵件地址:Email,用戶所在城市:City,用戶登錄次數 LoginCount 等。可以通過創建一個 UserInRoles 數據表(一般可以包括兩個字段,用戶名:UserName,用戶角色:UserRoles)來實現為用戶分配角色。

為了簡單,我只創建一個 Users 數據表,它有3個字段,用戶名 UserName,密碼 Password,用戶角色 UserRoles。創建表之前,你要選擇數據庫,或者創建一個新的數據庫。要創建一個新的命名為WebSolution的數據庫 ,只需要簡單的SQL語句:

程序代碼

Create DATABASE WebSolution

GO

要選擇一個叫msdb的數據庫,可以使用SQL語句:

程序代碼

USE msdb

GO

接下來,我們創建剛才提到的 Users 數據表,SQL 腳本如下:

程序代碼

Create TABLE Users
(
UserName nvarchar(100) CONSTRAINT PK_UserName PRIMARY KEY,
Password nvarchar(150),
UserRoles nvarchar(100)
)

可以為這個表創建索引 Credentials,SQL語句如下:

程序代碼

Create INDEX Credentials ON Users
(
UserName,
Password
)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved