Aracılığıyla paylaş


Asıl ve Kimlik Nesneleri

Not

Bu makale Windows için geçerlidir.

ASP.NET Core hakkında bilgi için bkz . ASP.NET Core Security.

Yönetilen kod, bir nesneye başvuru IIdentity içeren bir IPrincipal nesne aracılığıyla bir sorumlunun kimliğini veya rolünü bulabilir. Kimlik ve asıl nesneleri kullanıcı ve grup hesapları gibi tanıdık kavramlar ile karşılaştırmak yararlı olabilir. Çoğu ağ ortamlarında kullanıcı hesapları kişileri veya programları temsil ederken, grup hesapları belirli kullanıcı kategorilerini ve sahip oldukları hakları temsil ederler. Benzer şekilde, .NET kimlik nesneleri kullanıcıları, roller ise üyelikleri ve güvenlik bağlamlarını temsil eder. .NET'te, asıl nesne hem kimlik nesnesini hem de rolü kapsüller. .NET uygulamaları, sorumluya kimliğine veya daha yaygın olarak rol üyeliğine göre haklar verir.

Kimlik Nesneleri

Kimlik nesnesi, doğrulanan kullanıcı veya varlık hakkındaki bilgileri kapsüller. Kimlik nesneleri en temel düzeylerinde bir ad ve kimlik doğrulama türü içerir. Ad bir kullanıcının adı veya bir Windows hesabının adı olabilirken, kimlik doğrulama türü Kerberos V5 gibi desteklenen bir oturum açma protokolü veya özel bir değer olabilir. .NET, çoğu özel oturum açma senaryosu için kullanılabilecek bir GenericIdentity nesne ve uygulamanızın Windows kimlik doğrulamasına güvenmesini istediğinizde kullanılabilecek daha özel WindowsIdentity bir nesne tanımlar. Ayrıca, özel kullanıcı bilgilerini kapsülleyen kendi kimlik sınıfınızı tanımlayabilirsiniz.

Arabirim, IIdentity kerberos V5 veya NTLM gibi bir ada ve kimlik doğrulama türüne erişme özelliklerini tanımlar. Tüm Kimlik sınıfları IIdentity arabirimini uygular. Bir Identity nesnesi ile bir iş parçacığının yürütülmekte olduğu Windows işlem belirteci arasında gerekli bir ilişki yoktur. Ancak, Identity nesnesi bir WindowsIdentity nesnesiyse, kimliğin bir Windows güvenlik belirtecini temsil olduğu varsayılır.

Asıl Nesneler

Asıl nesne, kodun altında çalıştığı güvenlik bağlamını temsil eder. Bir asıl nesneyle ilişkili role göre rol tabanlı güvenlik izni hakları uygulayan uygulamalar. Kimlik nesnelerine benzer şekilde.NET de bir GenericPrincipal nesne ve nesne WindowsPrincipal sağlar. Kendi özel asıl sınıflarınızı da tanımlayabilirsiniz.

Arabirimi, IPrincipal ilişkili bir Identity nesnesine erişmek için bir özelliğin yanı sıra Principal nesnesi tarafından tanımlanan kullanıcının belirli bir rolün üyesi olup olmadığını belirlemek için bir yöntem tanımlar. Tüm Principal sınıfları, IPrincipal arabiriminin yanı sıra gerekli ek özellikleri ve yöntemleri uygular. Örneğin ortak dil çalışma zamanı, grup üyeliğini rollere eşlemek için ek işlevler uygulayan WindowsPrincipal sınıfını sağlar.

Principal nesnesi, bir uygulama etki alanı () içindeki bir çağrı bağlamı (CallContext) nesnesine bağlıdırAppDomain. Her yeni AppDomain ile her zaman bir varsayılan çağrı bağlamı oluşturulur, bu nedenle Principal nesnesini kabul etmek için her zaman kullanılabilir bir çağrı bağlamı vardır. Yeni bir iş parçacığı oluşturulduğunda, iş parçacığı için bir CallContext nesnesi de oluşturulur. Principal nesne başvurusu, oluşturma iş parçacığından yeni iş parçacığının CallContext dosyasına otomatik olarak kopyalanır. Çalışma zamanı, iş parçacığının oluşturucusunun hangi Principal nesnesinin olduğunu belirleyemezse, Sorumlu ve Kimlik nesnesi oluşturma için varsayılan ilkeyi izler.

Yapılandırılabilir uygulama etki alanına özgü ilke, yeni bir uygulama etki alanıyla ilişkilendirilecek Principal nesnesinin türüne karar verme kurallarını tanımlar. Güvenlik ilkesinin izin aldığı durumlarda, çalışma zamanı geçerli yürütme iş parçacığıyla ilişkili işletim sistemi belirtecini yansıtan Sorumlu ve Kimlik nesneleri oluşturabilir. Çalışma zamanı varsayılan olarak kimliği doğrulanmamış kullanıcıları temsil eden Principal ve Identity nesnelerini kullanır. Çalışma zamanı, kod bunlara erişmeye çalışana kadar bu varsayılan Asıl Ve Kimlik nesnelerini oluşturmaz.

Uygulama etki alanı oluşturan güvenilen kod, varsayılan Principal ve Identity nesnelerinin oluşturulmasını denetleen uygulama etki alanı ilkesini ayarlayabilir. Bu uygulama etki alanına özgü ilke, söz konusu uygulama etki alanındaki tüm yürütme iş parçacıkları için geçerlidir. Yönetilmeyen, güvenilen bir konağın doğal olarak bu ilkeyi ayarlama özelliği vardır, ancak bu ilkeyi ayarlayan yönetilen kodun System.Security.Permissions.SecurityPermission etki alanı ilkesini denetlemek için değerine sahip olması gerekir.

Bir Principal nesnesini uygulama etki alanları arasında ancak aynı işlem içinde (ve dolayısıyla aynı bilgisayarda) iletirken uzaktan iletişim altyapısı, çağıranın bağlamı ile ilişkili Principal nesnesine başvuruyu çağıranın bağlamıyla kopyalar.

Ayrıca bkz.