Aracılığıyla paylaş


ClaimsPrincipal Sınıf

Tanım

IPrincipal Birden çok talep tabanlı kimliği destekleyen bir uygulama.

public ref class ClaimsPrincipal : System::Security::Principal::IPrincipal
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
type ClaimsPrincipal = class
    interface IPrincipal
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type ClaimsPrincipal = class
    interface IPrincipal
Public Class ClaimsPrincipal
Implements IPrincipal
Devralma
ClaimsPrincipal
Türetilmiş
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnek, bir kullanıcının HTTP isteğinde sunduğu talepleri ayıklar ve bunları HTTP yanıtına yazar. Geçerli kullanıcı' dan HttpContext olarak ClaimsPrincipalokunur. Talepler daha sonra ondan okunur ve ardından yanıta yazılır.

if (HttpContext.Current.User is ClaimsPrincipal principal)
{
   foreach (Claim claim in principal.Claims)
   {
      Response.Write("CLAIM TYPE: " + claim.Type + "; CLAIM VALUE: " + claim.Value + "</br>");
   }
}

Açıklamalar

.NET Framework 4.5 sürümünden başlayarak, Windows Identity Foundation (WIF) ve talep tabanlı kimlik .NET Framework tamamen tümleşiktir. Bu, .NET Framework bir sorumluyu temsil eden birçok sınıfın artık yalnızca arabirimini IPrincipal uygulamak yerine'den ClaimsPrincipal türetilmesi anlamına gelir. Arabirimi uygulamaya IPrincipal ek olarak, ClaimsPrincipal taleplerle çalışmak için yararlı olan özellikleri ve yöntemleri kullanıma sunar.

ClaimsPrincipal her biri bir ClaimsIdentityolan kimlik koleksiyonunu kullanıma sunar. Yaygın durumda, özelliği aracılığıyla erişilen bu koleksiyon yalnızca tek bir öğeye Identities sahip olur.

.NET 4.5'in çoğu asıl sınıfın türetildiği sorumlu olarak eklenmesi ClaimsPrincipal sizi kimlikle başa çıkma yönteminizde hiçbir şeyi değiştirmeye zorlamaz. Ancak daha fazla olasılık sunar ve daha iyi erişim denetimi için daha fazla şans sunar. Örnek:

  • Uygulama kodunun kendisi, ek kimlik doğrulaması, yetkilendirme ve kişiselleştirme görevlerini yönlendirmek için geçerli sorumluda yer alan taleplerle doğrudan çalışabilir.

  • Yürütme kodunuz ulaşmadan önce bile kimlik doğrulama istekleri ve yetkilendirme ilkesiyle başa çıkabilen bir talep işleme işlem hattı ile kaynaklarınızın önüne bakabilirsiniz. Örneğin, sınıfından türetilen ClaimsAuthenticationManager bir sınıfın örneği olan özel talep kimlik doğrulama yöneticisiyle web tabanlı bir uygulama veya hizmet yapılandırabilirsiniz. Bu durumda yapılandırıldığında, istek işleme işlem hattı talep kimlik doğrulama yöneticinizde yöntemini çağırarak Authenticate gelen isteğin bağlamını temsil eden bir ClaimsPrincipal geçirir. Talep kimlik doğrulama yöneticiniz daha sonra gelen taleplerin değerlerine göre kimlik doğrulaması gerçekleştirebilir. Ayrıca gelen talep kümesine talepleri filtreleyebilir, dönüştürebilir veya ekleyebilir. Örneğin, gelen talep kümesini yerel bir kullanıcı profili gibi yerel bir veri kaynağından oluşturulan yeni taleplerle zenginleştirmek için kullanılabilir

  • Web tabanlı bir uygulamayı, sınıfından ClaimsAuthorizationManager türetilen bir sınıfın örneği olan özel talep yetkilendirme yöneticisiyle yapılandırabilirsiniz. Bu durumda yapılandırıldığında, istek işleme işlem hattı gelen ClaimsPrincipal öğesini paketler AuthorizationContext ve talep yetkilendirme yöneticinizde yöntemini çağırır CheckAccess . Ardından, talep yetkilendirme yöneticiniz gelen taleplere göre yetkilendirmeyi zorunlu kılabilir.

  • Satır içi talep tabanlı kod erişim denetimleri, uygulamanızı özel talep yetkilendirme yöneticisiyle yapılandırarak ve kesinlik temelli erişim denetimleri gerçekleştirmek için sınıfını veya bildirim temelli erişim denetimleri gerçekleştirmek için sınıfını ClaimsPrincipalPermissionAttribute kullanarak ClaimsPrincipalPermission gerçekleştirilebilir. Talep tabanlı kod erişim denetimleri, işlem hattı dışında satır içinde gerçekleştirilir ve bu nedenle, talep yetkilendirme yöneticisi yapılandırıldığı sürece tüm uygulamalar tarafından kullanılabilir.

bir istekle ilişkili sorumlu veya bir iş parçacığının yürütülmekte olduğu sorumlu için bir örneği, bağlı olan taraf (RP) uygulamasında özelliğini ClaimsPrincipalöğesine dönüştürerek Thread.CurrentPrincipal elde ClaimsPrincipal edebilirsiniz. Bir ClaimsPrincipal nesneyle ilişkili talepler, özelliği aracılığıyla Claims kullanılabilir. özelliği, Claims sorumluyla ilişkilendirilmiş kimliklerin içerdiği tüm talepleri döndürür. birden çok ClaimsIdentity örnek içeren nadir durumlarda ClaimsPrincipal özelliğini kullanabilir Identities veya özelliğini kullanarak Identity birincil kimliğe erişebilirsiniz. ClaimsPrincipal , bu taleplerin aranabileceği ve Dil Tümleşik Sorgusu'nun (LINQ) tam olarak desteklendiği çeşitli yöntemler sağlar. Kimlikler, veya AddIdentity yöntemleri kullanılarak sorumluya AddIdentities eklenebilir.

Not

öğesine kimlik eklemek için çağıranın ClaimsPrincipaltam güvene sahip olması gerekir.

Varsayılan olarak, WIF özelliği aracılığıyla döndürülecek birincil kimliği seçerken nesnelerin önceliklerini WindowsIdentityIdentity belirtir. Seçimi gerçekleştirmek için özelliği aracılığıyla PrimaryIdentitySelector bir temsilci sağlayarak bu davranışı değiştirebilirsiniz. özelliği, ClaimsPrincipalSelector özelliği için Current benzer işlevler sağlar.

Talep tabanlı modelde, bir sorumlunun belirli bir rolde olup olmadığı, temel alınan kimlikleri tarafından sunulan talepler tarafından belirlenir. IsInRole yöntemi temelde sorumluyla ilişkili her kimliği inceleyerek belirtilen rol değerine sahip bir talep sahibi olup olmadığını belirler. Rol denetimleri sırasında hangi taleplerin incelenmesi gerektiğini belirlemek için kullanılan talebin türü (özelliğiyle Claim.Type temsil edilir) özelliği aracılığıyla ClaimsIdentity.RoleClaimType bir kimlikte belirtilir. Bu nedenle rol denetimleri sırasında incelenen talepler, sorumluyla ilişkili farklı kimlikler için farklı türde olabilir.

Oluşturucular

ClaimsPrincipal()

ClaimsPrincipal sınıfının yeni bir örneğini başlatır.

ClaimsPrincipal(BinaryReader)

belirtilen BinaryReaderile bir örneğini ClaimsPrincipal başlatır.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

Belirtilen talep kimliklerini kullanarak sınıfının yeni bir örneğini ClaimsPrincipal başlatır.

ClaimsPrincipal(IIdentity)

Belirtilen kimlikten sınıfının yeni bir örneğini ClaimsPrincipal başlatır.

ClaimsPrincipal(IPrincipal)

Belirtilen sorumludan sınıfının yeni bir örneğini ClaimsPrincipal başlatır.

ClaimsPrincipal(SerializationInfo, StreamingContext)
Geçersiz.

kullanılarak ISerializableoluşturulan serileştirilmiş bir akıştan sınıfının yeni bir örneğini ClaimsPrincipal başlatır.

Özellikler

Claims

Bu talep sorumlusuyla ilişkili tüm talep kimliklerinden tüm talepleri içeren bir koleksiyon alır.

ClaimsPrincipalSelector

özelliği tarafından döndürülen talep sorumlusunu seçmek için kullanılan temsilciyi Current alır veya ayarlar.

Current

Geçerli talep sorumlusunu alır.

CustomSerializationData

Türetilmiş bir tür tarafından sağlanan ek verileri içerir. genellikle çağrılırken WriteTo(BinaryWriter, Byte[])ayarlanır.

Identities

Bu talep sorumlusuyla ilişkili tüm talep kimliklerini içeren bir koleksiyon alır.

Identity

Bu talep sorumlusuyla ilişkili birincil talep kimliğini alır.

PrimaryIdentitySelector

özelliği tarafından döndürülen talep kimliğini seçmek için kullanılan temsilciyi Identity alır veya ayarlar.

Yöntemler

AddIdentities(IEnumerable<ClaimsIdentity>)

Belirtilen talep kimliklerini bu talep sorumlusuna ekler.

AddIdentity(ClaimsIdentity)

Belirtilen talep kimliğini bu talep sorumlusuna ekler.

Clone()

Bu örneğin bir kopyasını döndürür.

CreateClaimsIdentity(BinaryReader)

Yeni bir talep kimliği oluşturur.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
FindAll(Predicate<Claim>)

Belirtilen koşulla eşleşen tüm talepleri alır.

FindAll(String)

Belirtilen talep türüne sahip tüm talepleri veya talepleri alır.

FindFirst(Predicate<Claim>)

Belirtilen koşulla eşleşen ilk talebi alır.

FindFirst(String)

Belirtilen talep türüne sahip ilk talebi alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo geçerli ClaimsPrincipal nesneyi seri hale getirmek için gereken verilerle doldurur.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
HasClaim(Predicate<Claim>)

Bu talep sorumlusuyla ilişkili talep kimliklerinden herhangi birinin belirtilen koşulla eşleşen bir talep içerip içermediğini belirler.

HasClaim(String, String)

Bu talep sorumlusuyla ilişkili talep kimliklerinden herhangi birinin belirtilen talep türüne ve değerine sahip bir talep içerip içermediğini belirler.

IsInRole(String)

Bu talep sorumlusu tarafından temsil edilen varlığın (kullanıcı) belirtilen rolde olup olmadığını gösteren bir değer döndürür.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
WriteTo(BinaryWriter)

kullanarak BinaryWriterseri hale getirmektedir.

WriteTo(BinaryWriter, Byte[])

kullanarak BinaryWriterseri hale getirmektedir.

Şunlara uygulanır

Ayrıca bkz.