INFO: ASP.NET keamanan Overview

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 306590 - Melihat produk di mana artikel ini berlaku.
Artikel ini merujuk kepada .net Microsoft berikut Kerangka perpustakaan kelas namespaces:
  • System.web.Security
  • System.web.Principal
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menyediakan pengenalan ASP.NET keamanan.

Untuk tambahan ASP.NET ikhtisar merujuk sebagai berikut Artikel Pangkalan Pengetahuan Microsoft:
305140 INFO: ASP.NET Roadmap

INFORMASI LEBIH LANJUT

ASP.net memberi Anda lebih banyak kontrol untuk menerapkan keamanan untuk aplikasi Anda. ASP.net keamanan bekerja dalam hubungannya dengan Microsoft Internet Information Services Keamanan (IIS) dan termasuk layanan otentikasi dan otorisasi untuk menerapkan model keamanan ASP.NET. 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 menurun 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 proses pekerja ASP.NET.
  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 asali. Untuk mengaktifkan peniruan, Anda harus menetapkan atribut meniru 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:
Aliran ASP.net Data
.aspx http://MSDN.Microsoft.com/en-us/library/xa68twcb (vs.71)
Untuk informasi tambahan tentang meniru di ASP.NET, klik nomor artikel di bawah ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
306158 INFO: Menerapkan peniruan di ASP.NET aplikasi

Pengaturan konfigurasi terkait

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.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 Bahasa Markah Hiperteks (HTML) di mana pengguna mengetik identitasnya. Setelah pengguna memberikan mandat dan mengajukan bentuk, aplikasi mengotentikasi permintaan, dan isu-isu sistem otorisasi tiket dalam bentuk kue. Cookie ini berisi kredensial atau bukti kunci untuk merebut kembali identitas. Permintaan berikutnya dari browser secara otomatis mencakup cookie.

Untuk informasi lebih lanjut 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)
Untuk informasi tambahan otentikasi bentuk di ASP.NET, klik artikel nomor di bawah ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
301240 CARA: Menerapkan berbasis bentuk otentikasi dalam ASP.NET aplikasi dengan menggunakan C# .net

Windows otentikasi

Windows otentikasi, IIS melakukan otentikasi, dan token dikonfirmasi diteruskan ke proses pekerja ASP.NET. 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)

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)

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 adalah juga digunakan bila Anda menggunakan modul keamanan kustom Anda sendiri.

Otorisasi

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

ASP.net menawarkan penyedia otorisasi berikut:

FileAuthorization

Kelas FileAuthorizationModule 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

Kelas UrlAuthorizationModule 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 Gunakan.

UrlAuthorizationModule menerapkan kedua pernyataan positif dan negatif otorisasi; itu adalah, Anda dapat menggunakan modul untuk selektif mengizinkan atau menolak akses ke sewenang-wenang bagian dari 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 .NET Framework SDK dokumentasi:
ASP.net otorisasi
.aspx http://MSDN.Microsoft.com/en-us/library/wce3kxhd (vs.71)

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 bukanlah terbatas pada account Windows dan kelompok. Misalnya, jika Windows otentikasi dan peniruan diaktifkan, identitas pengguna Windows identity (User.Identity.Name = "Domain\username"). Anda dapat memeriksa identitas untuk keanggotaan dalam peran tertentu dan membatasi akses sesuai. Untuk contoh:

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

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

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

REFERENSI

Untuk informasi tentang ASP.NET keamanan pedoman, lihat kertas putih MSDN berikut:
Otentikasi pada ASP.NET: .net keamanan bimbingan
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
Untuk informasi tambahan, klik artikel nomor di bawah ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
311094 BUG: Pesan galat "ConfigurationException" ketika menyamar sebagai account baca konfigurasi
306359 PRB: Request.ServerVariables("LOGON_USER") kembali String kosong di ASP.NET
313091 CARA: Membuat tombol tekan dengan menggunakan Visual Basic .net untuk digunakan dalam bentuk-bentuk otentikasi
313116 PRB: Permintaan otentikasi bentuk tidak diarahkan ke loginUrl Halaman
Untuk informasi lebih lanjut, lihat buku-buku berikut:
Reilly, Douglas J. Merancang aplikasi Microsoft ASP.NET. Microsoft Press, 2001.

Esposito, Dino.Bangunan solusi Web dengan ASP.NET dan ADO.NET. Microsoft Press, 2001.

Properti

ID Artikel: 306590 - Kajian Terakhir: 28 Juni 2012 - Revisi: 3.0
Berlaku bagi:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Kata kunci: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtid
Penerjemahan 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

Berikan Masukan

 

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