ข้อมูล: ภาพรวมความปลอดภัย ASP.NET

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 306590 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
บทความนี้อ้างอิงถึงใน Microsoft .NET ดังต่อไปนี้ กรอบ namespaces ของไลบรารีคลาส:
  • System.Web.Security
  • System.Web.Principal
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้ให้คำแนะนำ ASP.NET รักษาความปลอดภัย

สำหรับภาพรวมของ ASP.NET เพิ่มเติม โปรดดูที่ต่อไปนี้ บทความใน Microsoft Knowledge Base:
305140 รายละเอียด: ASP.NET แผนการทำงาน

ข้อมูลเพิ่มเติม

ASP.NET ให้คุณควบคุมการรักษาความปลอดภัยสำหรับการนำมาใช้ได้มากขึ้น โปรแกรมประยุกต์ของคุณ ความปลอดภัยของ ASP.NET ทำงานร่วมกับ Microsoft Internet Information Services การรักษาความปลอดภัย (IIS) และรวมถึงการรับรองความถูกต้องและการอนุญาตบริการเพื่อ ใช้แบบจำลองการรักษาความปลอดภัยของ ASP.NET ASP.NET ยังรวมถึงการตามบทบาท คุณลักษณะความปลอดภัยที่คุณสามารถใช้งานสำหรับ Microsoft Windows ทั้งสอง และ บัญชีผู้ใช้ของ Windows ที่ไม่

บทความนี้มีแบ่งต่อไปนี้ ส่วน:

ลำดับของการรักษาความปลอดภัยด้วยการร้องขอ

ขั้นตอนต่อไปนี้จัดเค้าร่างลำดับของเหตุการณ์เมื่อไคลเอนต์ ทำให้การร้องขอ:
  1. เพจที่มี.aspx ที่อยู่บน IIS ที่มีการร้องขอไคลเอนต์ เซิร์ฟเวอร์
  2. มีส่งข้อมูลประจำตัวของไคลเอ็นต์กับ IIS
  3. IIS ไคลเอ็นต์การรับรองความถูกต้อง และส่งต่อการรับรองความถูกต้อง โทเค็นพร้อมกับร้องขอของไคลเอ็นต์เมื่อต้องการกระบวนการของผู้ปฏิบัติงานของ ASP.NET
  4. ขึ้นอยู่กับโทเค็นการรับรองความถูกต้องจาก IIS และ ตัดสินใจของการตั้งค่าคอนฟิกสำหรับแอพลิเคชันเว็บ ASP.NET จะหรือไม่ เลียนแบบผู้ใช้บนเธรดที่กำลังประมวลผลการร้องขอ ในแบบแตกต่างกัน ความแตกต่างระหว่าง Microsoft Active Server Pages (ASP) และ ASP.NET, ASP.NET ไม่มี impersonates ผู้ใช้การรับรองความถูกต้องอีกต่อไป โดยค่าเริ่มต้น เมื่อต้องการเปิดใช้งานการเลียนแบบ คุณต้องตั้งค่าแอตทริบิวต์ของส่วนข้อมูลประจำตัวเลียนแบบในแฟ้ม Web.config เป็นtrue
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับลำดับการรักษาความปลอดภัย อ้างถึงใน หัวข้อต่อไปนี้ใน.NET Framework ซอฟต์แวร์พัฒนา Kit (SDK) เอกสารประกอบ:
กระแสข้อมูล ASP.NET
.aspx http://msdn.microsoft.com/en-us/library/xa68twcb (vs.71)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ปลอมแปลงมาใน ASP.NET คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน ฐานความรู้ของ Microsoft:
306158 รายละเอียด: ใช้การเลียนแบบในโปรแกรมประยุกต์ ASP.NET

การตั้งค่าคอนฟิกที่เกี่ยวข้อง

IIS รักษาความปลอดภัยเกี่ยวข้องกับการตั้งค่าคอนฟิกการตั้งค่าใน IIS metabase อย่างไรก็ตาม ASP.NET รักษาความปลอดภัย (และอื่น ๆ) การตั้งค่าคอนฟิก การตั้งค่าในไฟล์การตั้งค่าคอนฟิก Extensible Markup Language (XML) ถึงแม้ว่านี้ โดยทั่วไปจะทำให้ง่ายที่ใช้งานของโปรแกรมประยุกต์ของคุณจากการรักษาความปลอดภัย necessitates โมเดลความปลอดภัยของแอพลิเคชันของคุณ adopts standpoint, การกำหนดค่าที่ถูกต้องของทั้ง IIS metabase และโปรแกรมประยุกต์ ASP.NET ของคุณ โดยผ่านการตั้งค่าคอนฟิกของแฟ้ม (Web.config)

ต่อไปนี้ ตั้งค่าคอนฟิกส่วนเกี่ยวข้องกับการรักษาความปลอดภัยของ ASP.NET:

รับรองความถูกต้อง

รับรองความถูกต้องคือ กระบวนการที่คุณได้รับการระบุ ข้อมูลประจำเช่นชื่อและรหัสผ่านของผู้ใช้ และการตรวจสอบข้อมูลประจำตัวเหล่านั้น เทียบกับหน่วยงานบางอย่าง

ASP.NET ให้การรับรองความถูกต้องที่สี่ ผู้ให้บริการ:

แบบฟอร์มการรับรองความถูกต้อง

แบบฟอร์มการรับรองความถูกต้องอ้างอิงไปยังระบบในที่ไม่ได้รับอนุญาต คำร้องขอจะเปลี่ยนเส้นทางไปยังฟอร์ม Hypertext Markup Language (HTML) ซึ่ง ผู้ใช้พิมพ์ข้อมูลประจำตัวของตนเอง หลังจากที่ผู้ใช้ที่มีข้อมูลประจำตัว และส่ง แบบฟอร์ม แอพลิเคชันประชุมการร้องขอ และปัญหาระบบการ การอนุญาต ticket ในรูปแบบของคุกกี้ คุกกี้นี้ประกอบด้วยการ ข้อมูลประจำตัวหรือแป้นเพื่อหามาใช้ข้อมูลประจำตัว คำร้องขอในเวลาต่อมาจากนั้น เบราว์เซอร์รวมคุกกี้โดยอัตโนมัติ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ แบบฟอร์มรับรองความถูกต้อง การอ้างอิงไปยังหัวข้อต่อไปนี้ใน.NET Framework SDK เอกสารประกอบ:
ตัวให้บริการการรับรองความถูกต้องของฟอร์ม
.aspx http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71)
สำหรับ รับรองความถูกต้องแบบฟอร์มรายละเอียดเพิ่มเติมใน ASP.NET คลิกบทความ หมายเลขด้านล่างนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
301240 วิธีการ: ใช้แบบฟอร์มการรับรองความถูกต้องในโปรแกรมประยุกต์ ASP.NET ของคุณโดยใช้ C# .NET

การพิสูจน์ตัวจริงของ Windows

ในการรับรองความถูกต้องของ Windows, IIS ทำรับรองความถูกต้อง และ โทเค็นการรับรองความถูกต้องถูกส่งต่อไปกระบวนการของผู้ปฏิบัติงาน ASP.NET ประโยชน์ของการใช้ Windows ตรวจสอบได้ว่า ต้องใช้ในการเขียนโค้ดน้อยที่สุด คุณอาจต้องการใช้งาน Windows การรับรองความถูกต้องเพื่อเลียนแบบบัญชีผู้ใช้ Windows ที่รับรองความถูกต้องของ IIS ก่อนที่คุณส่งออกการร้องขอการ ASP.NET

สำหรับข้อมูลเพิ่มเติม เกี่ยวกับการรับรองความถูกต้องของ Windows อ้างอิงไปยังหัวข้อต่อไปนี้ใน.NET เอกสารประกอบ SDK ของกรอบ:
ตัวให้บริการ WindowsAuthenticationModule
.aspx http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71)

รับรองความถูกต้องของ passport

รับรองความถูกต้องของ passport คือ บริการการรับรองความถูกต้องแบบรวมศูนย์ ที่ Microsoft มี ที่ให้บริการแฟ้มบันทึกเดียวบน และหลักของส่วนกำหนดค่าบริการ สำหรับไซต์ของสมาชิก โดยทั่วไป ใช้การพิสูจน์ตัวจริงของ Passport เมื่อคุณจำเป็น สู่ความสามารถในการข้ามโดเมนหลายเดียว

สำหรับข้อมูลเพิ่มเติม ข้อมูลเกี่ยวกับการรับรองความถูกต้องของ Passport การอ้างอิงไปยังหัวข้อต่อไปนี้ในการ เอกสารประกอบของ.NET framework SDK:
ตัวให้บริการการรับรองความถูกต้องของ Passport
.aspx http://msdn.microsoft.com/en-us/library/f8e50t0f (vs.71)

การรับรองความถูกต้องเป็นค่าเริ่มต้น

ใช้การรับรองความถูกต้องเป็นค่าเริ่มต้นเมื่อคุณไม่ต้องการรักษาความปลอดภัยใด ๆ ในโปรแกรมประยุกต์เว็บของคุณ เข้าถึงแบบไม่จำเป็นสำหรับการรักษาความปลอดภัยนี้ ผู้ให้บริการ ระหว่างการให้บริการการรับรองความถูกต้องทั้งหมด มีการเริ่มต้นการรับรองความถูกต้อง ประสิทธิภาพสูงสุดสำหรับโปรแกรมประยุกต์ของคุณ นอกจากนี้ผู้ให้บริการการรับรองความถูกต้องนี้คือ ใช้เมื่อคุณใช้โมดูลการรักษาความปลอดภัยที่กำหนดเองของคุณเอง

การอนุญาต

การอนุญาตคือ กระบวนการที่ตรวจสอบถ้าการรับรองความถูกต้อง ผู้ใช้มีการเข้าถึงทรัพยากรร้องขอ

ASP.NET ที่นำเสนอนั้น ผู้ให้บริการการอนุญาตดังต่อไปนี้:

FileAuthorization

คลาFileAuthorizationModuleทำการตรวจสอบแฟ้ม และทำงานอยู่เมื่อคุณใช้ รับรองความถูกต้องของ Windows FileAuthorizationModuleรับผิดชอบในการดำเนินการตรวจสอบในการควบคุมการเข้าถึงของ Windows แสดงรายการ (Acl) เพื่อตรวจสอบว่า ผู้ใช้จะสามารถเข้าถึง

UrlAuthorization

คลาUrlAuthorizationModuleทำการอนุญาตเป็นรูปแบบ Resource Locator (URL) ซึ่งตัวควบคุมขึ้นอยู่กับ URI namespace ของการอนุญาต URI namespaces สามารถเป็นได้ ค่อนข้างแตกต่างจากเส้นทางโฟลเดอร์และแฟ้มที่มีอยู่จริงที่สิทธิ NTFS ใช้

UrlAuthorizationModule assertions ทั้งค่าบวก และค่าลบการอนุญาต ที่ประมวลผล นั่นคือ คุณสามารถใช้โมดูลที่เลือกอนุญาต หรือปฏิเสธการเข้าถึง ส่วนที่กำหนดของ namespace URI สำหรับผู้ใช้ บทบาท (เช่นผู้จัดการ ทดสอบ และผู้ดูแลระบบ), และกริยา (เช่นรับและลงรายการบัญชี)

สำหรับ ข้อมูลเพิ่มเติมเกี่ยวกับการอนุญาตใน ASP.NET การอ้างอิงไปยังหัวข้อต่อไปนี้ ในเอกสารของ.NET Framework SDK:
การอนุญาต ASP.NET
.aspx http://msdn.microsoft.com/en-us/library/wce3kxhd (vs.71)

ขึ้นอยู่กับบทบาทการรักษาความปลอดภัย

ขึ้นอยู่กับบทบาทการรักษาความปลอดภัยใน ASP.NET คล้ายกันกับที่ตามบทบาท ความปลอดภัยที่ Microsoft COM + และเซิร์ฟเวอร์ธุรกรรม Microsoft (MTS) ใช้ แม้ว่าจะมีความแตกต่างที่สำคัญ ไม่ได้ขึ้นอยู่กับบทบาทการรักษาความปลอดภัยใน ASP.NET จำกัดเฉพาะกับบัญชีผู้ใช้ Windows และกลุ่ม ตัวอย่างเช่น ถ้าการพิสูจน์ตัวจริงของ Windows และมีการเปิดใช้การเลียนแบบ รหัสประจำตัวของผู้ใช้คือ รหัสประจำตัวของ Windows (User.Identity.Name = "โด") คุณสามารถตรวจสอบรหัสประจำตัวสำหรับ สมาชิกในหน้าที่เฉพาะ และจำกัดการเข้าถึงตามลำดับ สำหรับ ตัวอย่าง:

รหัส.NET Visual Basic
If User.IsInRole("BUILTIN\Administrators") Then
   Response.Write("You are an Admin")
Else If User.IsInRole("BUILTIN\Users") then
   Response.Write("You are a User")
Else
   Response.Write("Invalid user")
End if
				
Visual C# .NET รหัส
if ( User.IsInRole("BUILTIN\\Administrators"))
   Response.Write("You are an Admin");
else if (User.IsInRole("BUILTIN\\Users"))
   Response.Write("You are a User");
else
   Response.Write("Invalid user");
				
ถ้าคุณกำลังใช้การรับรองความถูกต้องของฟอร์ม บทบาทไม่ได้ถูกกำหนดไป ผู้ใช้การรับรองความถูกต้อง คุณต้องทำโดยทางโปรแกรมนั้น เมื่อต้องกำหนดบทบาทเพื่อการ การรับรองความถูกต้องผู้ใช้ ใช้เหตุการณ์OnAuthenticateของโมดูลการรับรองความถูกต้อง (ซึ่งเป็นแบบฟอร์ม โมดูลการรับรองความถูกต้องในตัวอย่างนี้) เพื่อสร้างวัตถุGenericPrincipalใหม่ และกำหนดคุณสมบัติของ HttpContextผู้ใช้ รหัสต่อไปนี้แสดงให้เห็น นี้:

รหัส.NET Visual Basic
Public Sub Application_AuthenticateRequest(s As Object, e As EventArgs)
   If (Not(HttpContext.Current.User Is Nothing)) Then
      If HttpContext.Current.User.Identity.AuthenticationType = "Forms" Then
         Dim id as System.Web.Security.FormsIdentity = HttpContext.Current.User.Identity
         Dim myRoles(3) As String
         myRoles(0)= "managers"
         myRoles(1)= "testers"
         myRoles(2)= "developers"
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles) 
      End If
   End If
End Sub
				
Visual C# .NET รหัส
public void Application_AuthenticateRequest(Object s, EventArgs e)      
{
   if (HttpContext.Current.User != null)
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" ) 
      {
         System.Web.Security.FormsIdentity id = HttpContext.Current.User.Identity;
         String[] myRoles = new String[3];
         myRoles[0]= "managers";
         myRoles[1]= "testers";
         myRoles[2]= "developers";
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
} 
				
เมื่อต้องการตรวจสอบว่า ผู้ใช้ที่อยู่ในหน้าที่เฉพาะเจาะจง และจำกัดการเข้าถึง เหมาะสม ใช้รหัสดังต่อไปนี้ (หรือคล้ายกัน) ในเพจของคุณ.aspx:

รหัส.NET Visual Basic
If User.IsInRole("managers") Then
   Response.Write("You are a Manager")
Else If  User.IsInRole("testers") Then
   Response.Write("You are a Tester")
Else If User.IsInRole("developers") Then
   Response.Write("You are a Developer")
End if
				
Visual C# .NET รหัส
if (User.IsInRole("managers"))
   Response.Write("You are a Manager");
else if (User.IsInRole("testers"))
   Response.Write("You are a Tester");
else if (User.IsInRole("developers"))
   Response.Write("You are a Developer");
				
สำหรับข้อมูลเพิ่มเติม ให้คลิกบทความ หมายเลขด้านล่างนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
306238 วิธีการ: ปฏิบัติตามบทบาทการรักษาความปลอดภัย ด้วยใช้แบบฟอร์มการรับรองความถูกต้องในโปรแกรมประยุกต์ ASP.NET ของคุณโดยใช้ Visual Basic .NET
สำหรับข้อมูลเพิ่มเติมในการรักษาความปลอดภัยตามบทบาท อ้างอิง หัวข้อต่อไปนี้ในเอกสารของ.NET Framework SDK: ไป
ขึ้นอยู่กับบทบาทการรักษาความปลอดภัย
.aspx http://msdn.microsoft.com/en-us/library/52kd59t0 (vs.71)

ข้อมูลอ้างอิง

สำหรับรายละเอียดของแนวทางการรักษาความปลอดภัยของ ASP.NET ให้ดู เอกสารทางเทคนิคของ MSDN ต่อไปนี้:
การรับรองความถูกต้องใน ASP.NET: คำแนะนำด้านความปลอดภัยของ.NET
http://msdn.microsoft.com/en-us/library/ms978378.aspx
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ASP.NET อ้างถึงใน กลุ่มข่าวสารของ MSDN ต่อไปนี้:
microsoft.public.dotnet.framework.aspnet
สำหรับข้อมูลเพิ่มเติม ให้คลิกบทความ หมายเลขด้านล่างนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
311094 จุดบกพร่อง: ข้อผิดพลาด "ConfigurationException" เมื่อสสำหรับบัญชีอ่านการตั้งค่าคอนฟิก
306359 PRB: สาย Request.ServerVariables("LOGON_USER") ส่งกลับอักขระว่างใน ASP.NET
313091 วิธีการ: สร้างคีย์ โดยใช้ Visual Basic .NET สำหรับใช้ในแบบฟอร์มการรับรองความถูกต้อง
313116 PRB: การร้องขอการรับรองความถูกต้องแบบฟอร์มจะไม่นำไป loginUrl หน้า
ดูข้อมูลเพิ่มเติม บัญชีดังต่อไปนี้:
Reilly, Douglas J. การออกแบบโปรแกรมประยุกต์ Microsoft ASP.NET. Microsoft Press, 2001

Esposito, Dinoสร้างเว็บโซลูชันกับ ASP.NET และ ADO.NET. Microsoft Press, 2001

คุณสมบัติ

หมายเลขบทความ (Article ID): 306590 - รีวิวครั้งสุดท้าย: 28 มิถุนายน 2555 - Revision: 5.0
ใช้กับ
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Keywords: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:306590

ให้ข้อเสนอแนะ

 

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