ID Artikel: 306590 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0

INFO: ASP.BERSIH keamanan Overview

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Artikel ini merujuk kepada Microsoft berikut.NET Kerangka perpustakaan kelas namespaces:
  • System.web.Security
  • System.web.Principal

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menyediakan pengenalan ASP.NET keamanan.

Untuk tambahan ASP.NET ikhtisar, merujuk pada Artikel Basis Pengetahuan Microsoft:
305140  (http://support.microsoft.com/kb/305140/EN-US/ ) INFO: ASP.NET Roadmap

INFORMASI LEBIH LANJUT

ASP.NET memberi Anda lebih banyak kontrol untuk menerapkan keamanan untuk aplikasi Anda. ASP.NET keamanan bekerja bersama-sama dengan Microsoft Internet Information Services Keamanan (IIS) dan termasuk layanan otentikasi dan otorisasi untuk menerapkan ASP.Model keamanan bersih. ASP.NET juga termasuk berbasis peran fitur keamanan yang dapat diterapkan untuk kedua Microsoft Windows dan account pengguna non-Windows.

Artikel ini dibagi menjadi berikut bagian:

Aliran keamanan dengan permintaan

Langkah-langkah berikut menjelaskan urutan peristiwa ketika seorang klien membuat permintaan:
  1. Klien meminta halaman .aspx yang berada di IIS server.
  2. Klien kredensial dilewatkan ke IIS.
  3. IIS mengotentikasi klien dan meneruskan dikonfirmasi tanda bersama dengan permintaan klien untuk ASP.NET pekerja proses.
  4. Berdasarkan token dikonfirmasi dari IIS dan pengaturan konfigurasi untuk aplikasi Web, ASP.NET memutuskan apakah akan meniru pengguna di thread yang memproses permintaan. Dalam berbeda perbedaan antara Microsoft Active Server Pages (ASP) dan ASP.NET, ASP.NET tidak lagi impersonates otentikasi pengguna secara default. Untuk mengaktifkan peniruan, Anda harus mengatur meniru atribut bagian identitas dalam file Web.config untuk benar.
Untuk informasi lebih lanjut tentang keamanan aliran, merujuk kepada Berikut topik di.NET Framework Software Development Kit (SDK) Dokumentasi:
ASP.Aliran NET Data
.aspx http://MSDN.Microsoft.com/en-us/library/xa68twcb (vs.71) (http://msdn.microsoft.com/en-us/library/xa68twcb(vs.71).aspx)
Untuk informasi tambahan tentang meniru di ASP.NET, klik nomor artikel di bawah ini untuk melihat artikel di Basis Pengetahuan Microsoft:
306158  (http://support.microsoft.com/kb/306158/EN-US/ ) INFO: Menerapkan peniruan di ASP.NET aplikasi

Pengaturan konfigurasi yang berhubungan

IIS mempertahankan pengaturan keamanan yang terkait dengan konfigurasi di IIS metabase. Namun, ASP.NET mempertahankan keamanan (dan lainnya) konfigurasi pengaturan dalam file konfigurasi Extensible Markup Language (XML). Meskipun ini umumnya menyederhanakan penggunaan aplikasi Anda dari keamanan sudut pandang, model keamanan yang mengadopsi aplikasi Anda memerlukan benar konfigurasi IIS metabase dan ASP Anda.NET aplikasi melalui berkas konfigurasinya (Web.config).

Berikut bagian konfigurasi terkait dengan ASP.NET keamanan:

Otentikasi

Otentikasi adalah proses yang Anda memperoleh identifikasi kredensial seperti nama pengguna dan password dan memvalidasi kredensial tersebut terhadap beberapa otoritas.

ASP.NET menyediakan otentikasi empat penyedia:

Bentuk-bentuk otentikasi

Bentuk-bentuk otentikasi mengacu pada sebuah sistem di mana unauthenticated permintaan akan diarahkan ke formulir Hypertext Markup Language (HTML) di mana pengguna mengetik identitasnya. Setelah pengguna memberikan mandat dan mengajukan bentuk, aplikasi mengotentikasi permintaan, dan isu-isu sistem tiket otorisasi berupa kue. Cookie ini berisi kredensial atau kunci untuk merebut kembali identitas. Permintaan berikutnya dari browser secara otomatis mencakup cookie.

Untuk informasi selengkapnya tentang Bentuk-bentuk otentikasi, lihat topik berikut di.NET Framework SDK Dokumentasi:
Penyedia otentikasi bentuk
.aspx http://MSDN.Microsoft.com/en-us/library/907hb5w9 (vs.71) (http://msdn.microsoft.com/en-us/library/907hb5w9(vs.71).aspx)
Untuk informasi tambahan bentuk-bentuk otentikasi di ASP.NET, klik artikel nomor di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
301240  (http://support.microsoft.com/kb/301240/EN-US/ ) CARA: Menerapkan berbasis bentuk otentikasi di ASP Anda.NET aplikasi dengan menggunakan C#.NET

Windows otentikasi

Windows otentikasi, IIS melakukan otentikasi, dan token dikonfirmasi diteruskan ke ASP.NET pekerja proses. Keuntungan dari menggunakan Windows otentikasi adalah bahwa hal itu memerlukan minimal pengkodean. Anda mungkin ingin menggunakan Windows otentikasi untuk meniru account pengguna Windows IIS mengotentikasi sebelum Anda menyerahkan permintaan untuk ASP.NET.

Untuk informasi lebih lanjut tentang Windows otentikasi, lihat topik berikut di.NET Kerangka SDK dokumentasi:
Penyedia WindowsAuthenticationModule
.aspx http://MSDN.Microsoft.com/en-us/library/907hb5w9 (vs.71) (http://msdn.microsoft.com/en-us/library/907hb5w9(vs.71).aspx)

Paspor otentikasi

Paspor otentikasi adalah layanan terpusat otentikasi, Microsoft yang menyediakan, yang menawarkan satu masuk dan inti profil layanan untuk anggota situs. Biasanya, paspor otentikasi yang digunakan ketika Anda perlu satu masuk kemampuan di beberapa domain.

Untuk lebih informasi tentang paspor otentikasi, lihat topik berikut di .NET Framework SDK dokumentasi:
Penyedia otentikasi paspor
.aspx http://MSDN.Microsoft.com/en-us/library/f8e50t0f (vs.71) (http://msdn.microsoft.com/en-us/library/f8e50t0f(vs.71).aspx)

Default otentikasi

Otentikasi default digunakan bila Anda tidak ingin keamanan pada aplikasi Web; akses anonim diperlukan untuk keamanan ini penyedia. Di antara semua penyedia otentikasi, Default otentikasi menyediakan kinerja maksimum untuk aplikasi Anda. Penyedia otentikasi ini juga digunakan ketika Anda menggunakan modul keamanan kustom Anda sendiri.

Pengesahan

Otorisasi adalah proses yang memverifikasi jika dikonfirmasi pengguna memiliki akses ke sumber daya yang diminta.

ASP.NET menawarkan penyedia otorisasi berikut:

FileAuthorization

The FileAuthorizationModule kelas melakukan file otorisasi dan aktif bila Anda menggunakan Windows otentikasi. FileAuthorizationModule bertanggung jawab untuk melakukan pemeriksaan pada Windows Access Control Daftar (ACLs) untuk menentukan apakah pengguna harus memiliki akses.

UrlAuthorization

The UrlAuthorizationModule kelas melakukan otorisasi Uniform Resource Locator (URL), yang mengontrol otorisasi berdasarkan URI namespace. URI namespaces dapat sangat berbeda dari fisik jalan folder dan file itu perizinan NTFS menggunakan.

UrlAuthorizationModule menerapkan kedua pernyataan positif dan negatif otorisasi; itu adalah, Anda dapat menggunakan modul untuk selektif mengizinkan atau menolak akses ke bagian-bagian yang sewenang-wenang namespace URI untuk pengguna, peran (seperti manajer, penguji, dan administrator), dan kata kerja (seperti GET & POST).

Untuk informasi lebih lanjut tentang otorisasi di ASP.NET, lihat topik berikut dalam.NET Framework SDK dokumentasi:
ASP.Otorisasi bersih
.aspx http://MSDN.Microsoft.com/en-us/library/wce3kxhd (vs.71) (http://msdn.microsoft.com/en-us/library/wce3kxhd(vs.71).aspx)

Berbasis peran keamanan

Berbasis peran keamanan di ASP.NET mirip dengan berbasis peran keamanan yang Microsoft COM + dan Microsoft transaksi Server (MTS) digunakan, Meskipun ada perbedaan penting. Berbasis peran keamanan di ASP.NET adalah tidak terbatas pada account Windows dan kelompok. Misalnya, jika Windows otentikasi dan peniruan diaktifkan, identitas pengguna Windows identitas (User.Identity.Name = "Domain\username"). Anda dapat memeriksa identitas untuk keanggotaan dalam peran tertentu dan membatasi akses sesuai. Untuk contoh:

Visual Basic.NET kode
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 kode
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");
				
Jika Anda menggunakan bentuk-bentuk otentikasi, peran tidak dikelompokkan otentikasi pengguna; Anda harus melakukan ini pemrograman. Untuk menetapkan peran untuk otentikasi pengguna, gunakan OnAuthenticate acara modul otentikasi (yang merupakan bentuk modul otentikasi dalam contoh ini) untuk membuat yang baru GenericPrincipal objek dan menetapkan untuk Pengguna properti HttpContext. Kode berikut menggambarkan ini:

Visual Basic.NET kode
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 kode
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);
      }
   }
} 
				
Untuk memeriksa apakah pengguna dalam peran tertentu dan membatasi akses oleh karena itu, gunakan kode berikut (atau serupa) di halaman .aspx Anda:

Visual Basic.NET kode
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 kode
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");
				
Untuk informasi tambahan, klik artikel nomor di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
306238  (http://support.microsoft.com/kb/306238/EN-US/ ) CARA: Menerapkan berbasis peran keamanan dengan otentikasi berbasis bentuk di ASP Anda.NET aplikasi dengan menggunakan Visual Basic.NET
Untuk informasi lebih lanjut tentang keamanan berbasis peran, lihat untuk topik berikut di.NET Framework SDK dokumentasi:
Berbasis peran keamanan
.aspx http://MSDN.Microsoft.com/en-us/library/52kd59t0 (vs.71) (http://msdn.microsoft.com/en-us/library/52kd59t0(vs.71).aspx)

REFERENSI

Untuk informasi tentang ASP.NET keamanan pedoman, melihat kertas putih MSDN berikut:
Otentikasi di ASP.NET:.BERSIH keamanan bimbingan
http://MSDN.Microsoft.com/en-us/library/ms978378.aspx (http://msdn.microsoft.com/en-us/library/ms978378.aspx)
Untuk lebih banyak informasi umum tentang ASP.NET, merujuk kepada newsgroup MSDN berikut:
Microsoft.Public.DotNet.Framework.Aspnet (http://msdn.microsoft.com/newsgroups/default.aspx?query=microsoft.public.dotnet.framework.aspnet&dg=&cat=en-us-msdn&lang=en&cr=US&pt=&catlist=774F24A2-F71F-425F-AC2B-DC48AB0DA5C9&dglist=&ptlist=&exp=&sloc=en-us)
Untuk informasi tambahan, klik artikel nomor di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
311094  (http://support.microsoft.com/kb/311094/EN-US/ ) BUG: Pesan galat "ConfigurationException" ketika menyamar sebagai account baca konfigurasi
306359  (http://support.microsoft.com/kb/306359/EN-US/ ) PRB: Request.ServerVariables("LOGON_USER") kembali String kosong di ASP.NET
313091  (http://support.microsoft.com/kb/313091/EN-US/ ) CARA: Membuat kunci menggunakan Visual Basic.NET untuk digunakan dalam bentuk-bentuk otentikasi
313116  (http://support.microsoft.com/kb/313116/EN-US/ ) PRB: Permintaan otentikasi bentuk tidak diarahkan ke loginUrl Halaman
Untuk informasi lebih lanjut, lihat buku-buku berikut:
Reilly, Douglas J. Merancang Microsoft ASP.Aplikasi NET (http://www.microsoft.com/mspress/books/toc/5136.aspx) . Microsoft Press, 2001.

Esposito, Dino.Bangunan solusi Web dengan ASP.NET dan ADO.NET (http://www.microsoft.com/learning/en/us/Books/5727.aspx) . Microsoft Press, 2001.

Berlaku bagi:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Kata kunci: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:306590  (http://support.microsoft.com/kb/306590/en-us/ )