ClaimsPrincipal Sınıf

Tanım

IPrincipalBirden çok talep tabanlı kimliği destekleyen bir uygulama.An IPrincipal implementation that supports multiple claims-based identities.

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 HTTP isteğindeki kullanıcı tarafından sunulan talepleri ayıklar ve bunları HTTP yanıtına yazar.The following example extracts the claims presented by a user in an HTTP request and writes them to the HTTP response. Geçerli Kullanıcı, olarak ' dan okundu HttpContext ClaimsPrincipal .The current user is read from the HttpContext as a ClaimsPrincipal. Talepler bundan sonra buradan okur ve yanıta yazılır.The claims are then read from it and then are written to the response.

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

Açıklamalar

.NET Framework 4,5 ' den başlayarak, Windows Identity Foundation (WıF) ve talep tabanlı kimlik .NET Framework ile tamamen tümleşiktir.Beginning with .NET Framework 4.5, Windows Identity Foundation (WIF) and claims-based identity have been fully integrated into the .NET Framework. Bu, .NET Framework bir sorumluyu temsil eden pek çok sınıfın artık ClaimsPrincipal yalnızca arabirimini uygulamak yerine ' den türetebileceği anlamına gelir IPrincipal .This means that many classes that represent a principal in the .NET Framework now derive from ClaimsPrincipal rather than simply implementing the IPrincipal interface. Arabirimi uygulamaya ek olarak IPrincipal , ClaimsPrincipal talepler ile çalışmak için yararlı olan özellikleri ve yöntemleri kullanıma sunar.In addition to implementing the IPrincipal interface, ClaimsPrincipal exposes properties and methods that are useful for working with claims.

ClaimsPrincipal her biri bir olan bir kimlik koleksiyonu sunar ClaimsIdentity .ClaimsPrincipal exposes a collection of identities, each of which is a ClaimsIdentity. Ortak durumda, özelliği aracılığıyla erişilen bu koleksiyonun Identities yalnızca tek bir öğesi olur.In the common case, this collection, which is accessed through the Identities property, will only have a single element.

ClaimsPrincipal.Net 4,5 ' de, en asıl sınıfların türeten sorumlu olan giriş, kimlik ile ilgilenirken herhangi bir şeyi değiştirmeye zorlamaz.The introduction of ClaimsPrincipal in .NET 4.5 as the principal from which most principal classes derive does not force you to change anything in the way in which you deal with identity. Ancak daha fazla olasılık açıp daha iyi erişim denetimi sunmayı daha iyi bir şekilde sunmaktadır.It does, however open up more possibilities and offer more chances to exercise finer access control. Örnek:For example:

  • Uygulama kodu, ek kimlik doğrulama, yetkilendirme ve kişiselleştirme görevlerini sağlamak için, geçerli sorumlunda bulunan taleplerle doğrudan çalışabilir.The application code itself can work directly with the claims contained in the current principal to drive extra authentication, authorization, and personalization tasks.

  • Bir talep işleme işlem hattı ile kaynaklarınızı önyükleyebilirsiniz. Bu, yürütme kodunuza ulaşmadan bile kimlik doğrulama istekleri ve yetkilendirme ilkesiyle uğraşmanıza neden olabilir.You can front your resources with a claims processing pipeline, which can deal with authentication requests and authorization policy even before execution reaches your code. Örneğin, sınıfından türetilen bir sınıf örneği olan özel bir talep kimlik doğrulama Yöneticisi ile Web tabanlı bir uygulama veya hizmet yapılandırabilirsiniz ClaimsAuthenticationManager .For example, you can configure a web-based application or service with a custom claims authentication manager, an instance of a class that derives from the ClaimsAuthenticationManager class. Bu şekilde yapılandırıldığında, istek işleme ardışık düzeni, Authenticate ClaimsPrincipal gelen isteğin bağlamını temsil eden, talep kimlik doğrulama yöneticinizin yöntemini çağırır.When so configured, the request processing pipeline invokes the Authenticate method on your claims authentication manager passing it a ClaimsPrincipal that represents the context of the incoming request. Talep kimlik doğrulama yöneticiniz, gelen taleplerin değerlerine göre kimlik doğrulaması yapabilir.Your claims authentication manager can then perform authentication based on the values of the incoming claims. Ayrıca gelen talep kümesine talepler filtreleyebilir, dönüştürebilir veya bunlara talep ekleyebilir.It can also filter, transform, or add claims to the incoming claim set. Örneğin, yerel kullanıcı profili gibi yerel bir veri kaynağından oluşturulan yeni taleplerle gelen talep kümesini zenginleştirmek için kullanılabilirFor example, it could be used to enrich the incoming claim set with new claims created from a local data source such as a local user profile

  • Sınıfından türetilen bir sınıf örneği olan özel bir talep Yetkilendirme Yöneticisi ile Web tabanlı bir uygulama yapılandırabilirsiniz ClaimsAuthorizationManager .You can configure a web-based application with a custom claims authorization manager, an instance of a class that derives from the ClaimsAuthorizationManager class. Bu şekilde yapılandırıldığında, istek işlem hattı gelen ' ı ClaimsPrincipal bir içinde paketler AuthorizationContext ve CheckAccess talep Yetkilendirme Yöneticisi 'nde yöntemini çağırır.When so configured, the request processing pipeline packages the incoming ClaimsPrincipal in an AuthorizationContext and invokes the CheckAccess method on your claims authorization manager. Talep yetkilendirme yöneticiniz, gelen taleplere göre yetkilendirmeyi zorlayabilir.Your claims authorization manager can then enforce authorization based on the incoming claims.

  • Satır içi talep tabanlı kod erişim denetimleri, uygulamanızı özel bir talep Yetkilendirme Yöneticisi ile yapılandırarak ve ClaimsPrincipalPermission tanımlayıcı erişim denetimleri gerçekleştirmek için sınıfı ya da ClaimsPrincipalPermissionAttribute bildirime dayalı erişim denetimleri gerçekleştirmek için kullanılarak gerçekleştirilebilir.Inline claims-based code access checks can be performed by configuring your application with a custom claims authorization manager and using either the ClaimsPrincipalPermission class to perform imperative access checks or the ClaimsPrincipalPermissionAttribute to perform declarative access checks. Talep tabanlı kod erişim denetimleri, işlem hattının dışında satır içi olarak gerçekleştirilir ve bu nedenle, bir talep Yetkilendirme Yöneticisi yapılandırıldığı sürece tüm uygulamalarda kullanılabilir.Claims-based code access checks are performed inline, outside of the processing pipeline, and so are available to all applications as long as a claims authorization manager is configured.

ClaimsPrincipalÖzelliği öğesine aktararak, BIR RP uygulamasındaki (veya iş parçacığının yürütüldüğü sorumlu) bir istekle ilişkili sorumlu için bir örnek elde edebilirsiniz Thread.CurrentPrincipal ClaimsPrincipal .You can obtain a ClaimsPrincipal instance for the principal associated with a request in an RP application (or the principal under which a thread is executing) by casting the Thread.CurrentPrincipal property to ClaimsPrincipal. Bir nesneyle ilişkili talepler, ClaimsPrincipal özelliği aracılığıyla kullanılabilir Claims .The claims associated with an ClaimsPrincipal object are available through its Claims property. ClaimsÖzelliği, sorumlu ile ilişkili kimlikler tarafından içerilen tüm talepleri döndürür.The Claims property returns all of the claims contained by the identities associated with the principal. ClaimsPrincipalBirden çok örnek içeren bir seyrek durumda, özelliğini ClaimsIdentity kullanabilir Identities veya özelliğini kullanarak birincil kimliğe erişebilirsiniz Identity .In the uncommon case in which the ClaimsPrincipal contains multiple ClaimsIdentity instances, you can use the Identities property or you can access the primary identity by using the Identity property. ClaimsPrincipal , bu taleplerin aranacağı ve dil ile tümleşik sorgu (LINQ) tam olarak desteklendiği çeşitli yöntemler sunar.ClaimsPrincipal provides several methods through which these claims may be searched and fully supports Language Integrated Query (LINQ). Kimlikler, AddIdentities veya yöntemleri kullanılarak sorumluya eklenebilir AddIdentity .Identities can be added to the principal by using the AddIdentities or AddIdentity methods.

Not

' A kimlik eklemek için ClaimsPrincipal , çağıran tam güvene sahip olmalıdır.To add identities to the ClaimsPrincipal, a caller must have full trust.

Varsayılan olarak, WindowsIdentity özelliği aracılığıyla döndürülecek birincil kimliği seçerken, nesne önceliklendirir Identity .By default, WIF prioritizes WindowsIdentity objects when selecting the primary identity to return through the Identity property. Seçimi gerçekleştirmek için özelliği aracılığıyla bir temsilci sağlayarak bu davranışı değiştirebilirsiniz PrimaryIdentitySelector .You can modify this behavior by supplying a delegate through the PrimaryIdentitySelector property to perform the selection. ClaimsPrincipalSelectorÖzelliği, özelliği için benzer işlevsellik sağlar Current .The ClaimsPrincipalSelector property provides similar functionality for the Current property.

Talep tabanlı modelde, bir sorumlunun belirtilen bir rolde olup olmadığı, temel kimlikleri tarafından sunulan talepler tarafından belirlenir.In the claim-based model, whether a principal is in a specified role is determined by the claims presented by its underlying identities. IsInRoleYöntemi temelde, belirtilen rol değeriyle bir talep olup olmadığını anlamak için sorumlu ile ilişkili her bir kimliği inceler.The IsInRole method essentially examines each identity associated with the principal to determine whether it possesses a claim with the specified role value. Claim.TypeRol denetimleri sırasında hangi taleplerin incelendiğini belirlemede kullanılan talebin türü (özelliği ile gösterilir), özelliği aracılığıyla bir kimlik üzerinde belirtilir ClaimsIdentity.RoleClaimType .The type of the claim (represented by its Claim.Type property) used to determine which claims should be examined during role checks is specified on an identity through its ClaimsIdentity.RoleClaimType property. Bu nedenle, rol denetimleri sırasında incelenen talepler, sorumluya ilişkin farklı kimlikler için farklı türde olabilir.Thus, the claims examined during role checks can be of a different type for different identities associated with the principal.

Oluşturucular

ClaimsPrincipal()

ClaimsPrincipal sınıfının yeni bir örneğini başlatır.Initializes a new instance of the ClaimsPrincipal class.

ClaimsPrincipal(BinaryReader)

Belirtilen bir örneğini bir örneği başlatır ClaimsPrincipal BinaryReader .Initializes an instance of ClaimsPrincipal with the specified BinaryReader.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

ClaimsPrincipalBelirtilen talep kimliklerini kullanarak sınıfının yeni bir örneğini başlatır.Initializes a new instance of the ClaimsPrincipal class using the specified claims identities.

ClaimsPrincipal(IIdentity)

Belirtilen kimliğin sınıfının yeni bir örneğini başlatır ClaimsPrincipal .Initializes a new instance of the ClaimsPrincipal class from the specified identity.

ClaimsPrincipal(IPrincipal)

ClaimsPrincipalBelirtilen sorumludan sınıfın yeni bir örneğini başlatır.Initializes a new instance of the ClaimsPrincipal class from the specified principal.

ClaimsPrincipal(SerializationInfo, StreamingContext)

ClaimsPrincipalKullanılarak oluşturulan serileştirilmiş bir akıştan sınıfının yeni bir örneğini başlatır ISerializable .Initializes a new instance of the ClaimsPrincipal class from a serialized stream created by using ISerializable.

Özellikler

Claims

Bu talep sorumlusu ile ilişkili tüm talep kimliklerinden gelen tüm talepleri içeren bir koleksiyon alır.Gets a collection that contains all of the claims from all of the claims identities associated with this claims principal.

ClaimsPrincipalSelector

Özelliği tarafından döndürülen talep sorumlusunu seçmek için kullanılan temsilciyi alır veya ayarlar Current .Gets or sets the delegate used to select the claims principal returned by the Current property.

Current

Geçerli talep sorumlusunu alır.Gets the current claims principal.

CustomSerializationData

Türetilmiş bir tür tarafından belirtilen ek verileri içerir.Contains any additional data provided by a derived type. Genellikle çağrılırken ayarlanır WriteTo(BinaryWriter, Byte[]) .Typically set when calling WriteTo(BinaryWriter, Byte[]).

Identities

Bu talep sorumlusu ile ilişkili tüm talep kimliklerini içeren bir koleksiyon alır.Gets a collection that contains all of the claims identities associated with this claims principal.

Identity

Bu talep sorumlusu ile ilişkili birincil talep kimliğini alır.Gets the primary claims identity associated with this claims principal.

PrimaryIdentitySelector

Özelliği tarafından döndürülen talep kimliğini seçmek için kullanılan temsilciyi alır veya ayarlar Identity .Gets or sets the delegate used to select the claims identity returned by the Identity property.

Yöntemler

AddIdentities(IEnumerable<ClaimsIdentity>)

Belirtilen talep kimliklerini bu talep sorumlusuna ekler.Adds the specified claims identities to this claims principal.

AddIdentity(ClaimsIdentity)

Belirtilen talep kimliğini bu talep sorumlusuna ekler.Adds the specified claims identity to this claims principal.

Clone()

Bu örneğin bir kopyasını döndürür.Returns a copy of this instance.

CreateClaimsIdentity(BinaryReader)

Yeni bir talep kimliği oluşturur.Creates a new claims identity.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.Determines whether the specified object is equal to the current object.

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

Belirtilen koşul ile eşleşen tüm talepleri alır.Retrieves all of the claims that are matched by the specified predicate.

FindAll(String)

Belirtilen talep türüne sahip tüm veya talepleri alır.Retrieves all or the claims that have the specified claim type.

FindFirst(Predicate<Claim>)

Belirtilen koşula göre eşleşen ilk talebi alır.Retrieves the first claim that is matched by the specified predicate.

FindFirst(String)

Belirtilen talep türüne sahip ilk talebi alır.Retrieves the first claim with the specified claim type.

GetHashCode()

Varsayılan karma işlevi olarak işlev görür.Serves as the default hash function.

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

SerializationInfoGeçerli nesneyi serileştirmek için gereken verileri ile doldurur ClaimsPrincipal .Populates the SerializationInfo with data needed to serialize the current ClaimsPrincipal object.

GetType()

TypeGeçerli örneği alır.Gets the Type of the current instance.

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

Bu talep sorumlusu ile ilişkili talep kimliklerinden herhangi birinin belirtilen koşula göre eşleşen bir talep içerip içermediğini belirler.Determines whether any of the claims identities associated with this claims principal contains a claim that is matched by the specified predicate.

HasClaim(String, String)

Bu talep sorumlusu ile ilişkili talep kimliklerinden herhangi birinin belirtilen talep türü ve değerine sahip bir talep içerip içermediğini belirler.Determines whether any of the claims identities associated with this claims principal contains a claim with the specified claim type and value.

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.Returns a value that indicates whether the entity (user) represented by this claims principal is in the specified role.

MemberwiseClone()

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

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

Geçerli nesneyi temsil eden dizeyi döndürür.Returns a string that represents the current object.

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

Kullanarak seri hale getirir BinaryWriter .Serializes using a BinaryWriter.

WriteTo(BinaryWriter, Byte[])

Kullanarak seri hale getirir BinaryWriter .Serializes using a BinaryWriter.

Şunlara uygulanır

Ayrıca bkz.