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

來源:互聯網
上載者:User

原文連結: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資料庫裡建立一個將會在這個樣本程式中用到的樣本使用者表。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.