如何使用 Visual C#.NET,ASP.NET 應用程式中實作角色架構安全性與表單基礎的驗證

文章翻譯 文章翻譯
文章編號: 311495 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何在 ASP.NET 應用程式實作表單基礎的驗證,使用 Visual C#.NET 中實作角色架構安全性


需求

本文假設您已經有實作表單型驗證 ASP.NET 應用程式上。
301240如何使用 C#.NET 的 ASP.NET 應用程式中實作表單型驗證

指派角色給驗證的使用者

因為通常表單使用者不是 Microsoft Windows 使用者,它們並沒有任何預設與它們相關聯的角色。因此,您必須附加驗證使用者的角色至使用者的身分,讓您可以在您的程式碼內實作角色架構安全性。

請使用本節中的範例程式碼在您的應用程式中實作角色架構安全性。這個範例程式碼會指定 pre-specified 的角色給驗證的使用者。視您如何儲存使用者資料,您可以實作您自己的方法,擷取該已驗證使用者的角色,並將這些角色附加驗證的使用者識別身份範例程式碼,請依照下列所示。

將下列程式碼複製到現有的應用程式,才能指派該角色給 Application_AuthenticateRequest 事件處理常式中驗證的使用者 Global.asax 檔中:
public void Application_AuthenticateRequest( Object src , EventArgs e )
{
   if (!(HttpContext.Current.User == null))
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" )
      {
      System.Web.Security.FormsIdentity id;
      id = (System.Web.Security.FormsIdentity)HttpContext.Current.User.Identity;
      String[] myRoles = new String[2];
      myRoles[0] = "Manager";
      myRoles[1] = "Admin";
      HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
}
				

檢查使用者角色,並在.ASPX 頁面中實作程式邏輯

下列步驟將示範如何實作和控制驗證的使用者所屬的角色所根據的程式邏輯。
  1. 建立名為 Sample.aspx 的.aspx 新的頁面和貼上下列程式碼:
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Web" %>
    
      <script runat=server>
        public void Page_Load() {
    	if (User.IsInRole("Admin")){
    		Response.Write ("You are an Administrator");}
    	else {
    		Response.Write ("You do not have any role assigned");}
        }
    
      </script>
    					
  2. 在您現有的應用程式中儲存 Sample.aspx。瀏覽到頁面以進行測試。

?考

如 ASP.NET 安全性功能的其他有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
306590資訊: ASP.NET 安全性概觀
以角色為基礎的安全性的詳細資訊,請參照到 「 下列.NET Framework 軟體開發套件 (SDK) 文件:
以角色為基礎的安全性
http://msdn2.microsoft.com/en-us/library/52kd59t0(vs.71).aspx
在下列 MSDN 網站的文件與來源程式碼也包含關於以角色為基礎的安全性資訊:
IBuySpy 開發人員方案
http://msdn2.microsoft.com/en-us/library/ms978480.aspx
Microsoft 提供協力廠商連絡資訊可協助您尋找技術支援。 此連絡人資訊若有變更恕不另行通知。Microsoft 不保證此第三方連絡資訊的正確性。

屬性

文章編號: 311495 - 上次校閱: 2007年4月19日 - 版次: 3.9
這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 標準版
關鍵字:?
kbmt kbhowtomaster kbsecurity KB311495 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:311495
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com