BİLGİ: ASP Güvenliği'ne genel bakış

Makale çevirileri Makale çevirileri
Makale numarası: 306590 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalede, aşağıdaki Microsoft .net için denilmektedir. Framework sınıf kitaplığı ad alanları:
  • System.Web.Security
  • System.Web.Principal
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, ASP giriş sağlanır. Güvenlik.

Ek ASP genel bilgiler için aşağıdakilere bakın. Microsoft Bilgi Bankası makalesi:
305140 BİLGİ: ASP Yol Haritası

Daha fazla bilgi

ASP güvenliğini uygulamak için daha fazla denetim sunar Uygulamanız. ASP güvenlik, Microsoft Internet Information Services ile birlikte çalışır (IIS) güvenlik ve kimlik doğrulama ve yetkilendirme hizmetlerini içerir ASP güvenlik modeli uygulamaktadır. Rol tabanlı ASP de içerir hem Microsoft Windows için uygulayabilirsiniz güvenlik özelliği ve Windows olmayan kullanıcı hesapları.

Bu makalede aşağıdaki ayrılmıştır. bölümler:

Güvenlik isteği ile akış

Aşağıdaki adımlar bir istemci olduğunda olayların sırası anahat istekte bulunan:
  1. Bir istemci, bir IIS üzerinde bulunduğu bir .aspx sayfası ister. Sunucu.
  2. İstemcinin kimlik bilgileri IIS'ye aktarılır.
  3. IIS istemci kimliğini doğrular ve kimliği doğrulanmış iletir ASP istemci isteği ile birlikte simgesi.
  4. IIS kimlik doğrulamalı belirteçten esas ve ASP Web uygulaması için yapılandırma ayarları, karar verip istek işleme iş parçacığında bir kullanıcısını temsil eder. Ayrı bir Microsoft Active Server Pages (asp) ve asp.net, ASP arasındaki farkı yok artık varsayılan olarak kimliği doğrulanmış kullanıcının kimliğine bürünür. Kimliğe bürünme özelliğini etkinleştirmek için kimlik bölümünün impersonate özniteliği trueWeb.config dosyasında ayarlamalısınız.
Güvenlik akışı hakkında daha fazla bilgi için bakın Aşağıdaki konuda .net Framework Software Development Kit (sdk) içinde belgeler:
ASP veri akışı
http://msdn.microsoft.com/en-us/library/xa68twcb (vs.71) .aspx
Hakkında ek bilgi için ASP kimliğine bürünüyor, makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın Microsoft Knowledge Base:
306158 BİLGİLERİ: Bir ASP uygulamasında kimliğe bürünme uygulama

İlgili yapılandırma ayarları

IIS IIS içindeki güvenlikle ilgili yapılandırma ayarlarını korur. Metatabanı. Ancak ASP Güvenlik (ve diğer) tutan yapılandırma ayarları yapılandırma dosyalarındaki Genişletilebilir Biçimlendirme Dili (xml). Ancak bu genellikle güvenlik uygulamanızdan dağıtımını basitleştirir. Uygulamanızın uyarlar güvenlik modeli açısından, necessitates IIS metatabanına ve ASP uygulamanızda doğru yapılandırma yapılandırma dosyası (Web.config).

Aşağıdaki ASP Güvenlik bağlantılı yapılandırma bölümleri:

Kimlik doğrulama

Kimlik doğrulama tarafından kimlik edinme işlemidir Bu kimlik bilgilerini doğrulamak ve kullanıcının kullanıcı adı ve parola gibi kimlik bilgileri Bazı yetkiliyi.

ASP dört kimlik doğrulaması sağlar sağlayıcıları:

Forms kimlik doğrulaması

Forms kimlik doğrulaması başvuran bir sistem içinde kimliği doğrulanmamış Köprü Metni Biçimlendirme Dili (html) form içindeki istekleri yönlendirilir Kullanıcıların kendi kimlik bilgilerini yazın. Kullanıcı kimlik bilgilerini sağlar ve gönderdikten sonra İstek ve sistem sorunları uygulama form kimliğini doğrular bir Yetkilendirme anahtarı olan tanımlama bilgileri biçiminde. Bu tanımlama bilgisini içerir. kimlik bilgisi veya kimliği yeniden almak anahtar. Sonraki istekleri Tarayıcı otomatik olarak tanımlama bilgisini içerir.

Hakkında daha fazla bilgi için Forms kimlik doğrulaması, .net Framework SDK'ın aşağıdaki konuya bakın belgeler:
Form kimlik doğrulama sağlayıcısı
http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71) .aspx
İçin ek bilgi form kimlik doğrulamasını asp.net, makaleyi tıklatın Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere numarasını tıklatın:
301240 NASIL yapılır: Form tabanlı çözümü ASP uygulamanızda C# .net kullanarak kimlik doğrulaması

Windows kimlik doğrulaması

Windows kimlik doğrulaması, IIS kimlik doğrulaması gerçekleştirir ve ASP alt işlem kimliği doğrulanmış belirteci iletilir. Windows kullanmanın avantajı en az kodlama gerektirir, kimlik doğrulaması kullanılır. Windows'u kullanmak isteyebilirsiniz. IIS kimlik doğrulaması Windows kullanıcı hesabının kimliğine bürünmek için kimlik doğrulaması siz el önce ASP isteği kapalı.

Daha fazla bilgi için Windows kimlik doğrulaması hakkında .net aşağıdaki konusuna bakın Framework sdk belgelerine başvurun:
WindowsAuthenticationModule sağlayıcısı
http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71) .aspx

Passport kimlik doğrulaması

Passport kimlik doğrulaması merkezi kimlik doğrulama hizmetidir, Microsoft, sağlayan tek oturum açma ve çekirdek profil hizmetleri sunan üye siteler için. Passport kimlik doğrulaması, gerektiğinde tipik olarak kullanılır tek oturum açma yeteneği birden fazla etki alanları arasında.

Daha fazla bilgi için Passport kimlik doğrulaması hakkında bilgi için aşağıdaki konuya bakın .net framework sdk belgelerine başvurun:
Passport kimlik doğrulama sağlayıcısı
http://msdn.microsoft.com/en-us/library/f8e50t0f (vs.71) .aspx

Varsayılan kimlik doğrulama

Herhangi bir güvenlik istemiyorsanız varsayılan kimlik doğrulama kullanılır Web uygulamanızın üzerinde; Anonim erişim için bu güvenlik gereklidir Sağlayıcı. Tüm kimlik doğrulama sağlayıcıları arasında varsayılan kimlik doğrulama sağlar. uygulamanız için en yüksek performans. Bu kimlik doğrulama sağlayıcısını da olur kendi özel güvenlik modülü kullandığınızda kullanılır.

Yetkilendirme

Yetkilendirme olduğunu doğrular işlem kimliği doğrulanmış Kullanıcı istenen kaynaklarına erişimi vardır.

ASP sunar Aşağıdaki yetkilendirme sağlayıcıları:

FileAuthorization

FileAuthorizationModule sınıf dosya yetkilendirme gerçekleştirir ve kullandığınız belirlediğinizde etkin olacaktır. Windows kimlik doğrulaması. Windows erişim denetimi denetimler gerçekleştirmek için FileAuthorizationModule sorumludur Bir kullanıcı erişimi olup olmayacağını belirlemek için listeleri (ACL).

UrlAuthorization

UrlAuthorizationModule sınıfı, Tekdüzen Kaynak Konum Belirleyicisi (url) yetkilendirme gerçekleştirir, hangi URI ad boşluğunu temel yetkilendirme denetler. URI ad olabilir. fiziksel klasör ve dosya yolları oldukça farklı, ntfs izinleri kullanın.

UrlAuthorizationModule hem olumlu hem olumsuz yetkilendirme onaylarını uygular; diğer bir deyişle, seçmeli olarak izin vermek veya erişimini engellemek için modülünü kullanabilirsiniz Kullanıcılar, roller (örneğin, yönetici, URI ad alanının rasgele bölümlerine Sınayıcılar ve Yöneticiler) ve fiiller (örneğin, get ve post).

İçin asp.net, yetkilendirme hakkında daha fazla bilgi için aşağıdaki konuya bakın .net Framework sdk belgelerinde:
ASP yetkilendirme
http://msdn.microsoft.com/en-us/library/wce3kxhd (vs.71) .aspx

Rol tabanlı güvenlik

ASP, rol tabanlı güvenlik, rol tabanlı için benzer Microsoft com + ve Microsoft Transaction Server (mts) kullanan güvenlik önemli farklar olsa da. Rol tabanlı güvenliğin ASP değil Windows hesapları ve grupları sınırlıdır. Örneğin, Windows kimlik doğrulaması ve kimliğe bürünme özelliğini, kullanıcının kimliğini Windows kimlik (User.Identity.Name = "Etkialanı\kullanıcıadı"). Kimlikler için denetleyebilirsiniz. Belirli bir rol üyelikleri ve buna göre erişimi sınırlayabilirsiniz. İçin Örnek:

Visual Basic .net kodu
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 kod
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");
				
Forms kimlik doğrulaması kullanıyorsanız, rolleri atanmamış kimliği doğrulanmış kullanıcı; Bu program aracılığıyla yapmanız gerekir. Rollere atamak için kimliği doğrulanmış kullanıcı kimlik doğrulama modülü (olan formlar OnAuthenticate olayını kullanın Bu örnekte kimlik doğrulama modülü) yeni bir GenericPrincipal nesnesi oluşturun ve HttpContext kullanıcı özelliğine atayın. Aşağıdaki kod gösterir Bu:

Visual Basic .net kodu
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 kod
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);
      }
   }
} 
				
Kullanıcı belirli bir rolü olup olmadığını denetlemek ve erişimi kısıtlamak için Buna göre aşağıdaki kodu kullanın (veya benzeri) .aspx sayfalarının:

Visual Basic .net kodu
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 kod
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");
				
Ek bilgi için makaleyi tıklatın. Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere numarasını tıklatın:
306238 NASIL yapılır: Rol tabanlı uygulamanız Visual Basic .net kullanarak ASP uygulamanızın form tabanlı kimlik doğrulaması ile güvenlik
Rol tabanlı güvenliği hakkında daha fazla bilgi için .net Framework sdk belgelerinde aşağıdaki konuya:
Rol tabanlı güvenlik
http://msdn.microsoft.com/en-us/library/52kd59t0 (vs.71) .aspx

Referanslar

ASP güvenlik yönergeleri hakkında daha fazla bilgi için bkz: aşağıdaki msdn Teknik İnceleme:
Kimlik doğrulama ASP: NET Güvenlik Kılavuzu
http://msdn.microsoft.com/en-us/library/ms978378.aspx
ASP hakkında daha fazla genel bilgi için bakın aşağıdaki msdn Haber grubu:
Microsoft.public.dotnet.Framework.ASPNET
Ek bilgi için makaleyi tıklatın. Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere numaralarını tıklatın:
311094 Hata: Okuma yapılandırma özellikleri "ConfigurationException" hata iletisi hesapları
306359 prb: Request.ServerVariables("LOGON_USER") boş dize verir, ASP.
313091 NASIL yapılır: Forms kimlik doğrulaması kullanmak için Visual Basic .net kullanarak anahtarları oluştur
313116 prb: Formlar kimlik doğrulama isteklerini loginUrl sayfasına yönlendirilirsiniz değil
Daha fazla bilgi için aşağıdaki kitaplara bakın:
Reilly, Douglas j. Microsoft ASP Uygulamalar? Tasar?mlama. Microsoft Press, 2001.

Esposito, Dino.ASP ve ado.net ile bina Web çözümleri. Microsoft Press, 2001.

Özellikler

Makale numarası: 306590 - Last Review: 28 Haziran 2012 Perşembe - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Anahtar Kelimeler: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 306590

Geri Bildirim Ver

 

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