Поделиться через


Claim Класс

Определение

Представляет утверждение.

public ref class Claim
public class Claim
[System.Serializable]
public class Claim
type Claim = class
[<System.Serializable>]
type Claim = class
Public Class Claim
Наследование
Claim
Атрибуты

Примеры

В следующем примере извлекаются утверждения, связанные с прошедшим проверку подлинности пользователем, выполняющим HTTP-запрос, и записывает их в ответ HTTP. Текущий пользователь считывается из HttpContext как ClaimsPrincipal, и утверждения считываются из него. Затем утверждения записываются в объект HttpResponse.

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>");  
   }  

}  

Комментарии

Утверждение — это заявление о субъекте издателем. Утверждения представляют атрибуты субъекта, полезного в контексте операций проверки подлинности и авторизации. Субъекты и издатели — это оба сущности, которые являются частью сценария идентификации. Ниже приведены типичные примеры темы: пользователь, приложение или служба, устройство или компьютер. Ниже приведены типичные примеры издателя: операционная система, приложение, служба, поставщик ролей, поставщик удостоверений или поставщик федерации. Издатель предоставляет утверждения путем выдачи маркеров безопасности, как правило, через службу маркеров безопасности (STS). (В WIF можно создать stS, производный от класса SecurityTokenService.) Иногда коллекция утверждений, полученных от издателя, может быть расширена атрибутами субъекта, хранящимися непосредственно в ресурсе. Утверждение можно оценить, чтобы определить права доступа к данным и другим защищенным ресурсам во время авторизации, а также использовать для принятия или выражения решений проверки подлинности о субъекте.

Начиная с .NET 4.5, классы Windows Identity Foundation (WIF), реализующие удостоверение на основе утверждений, были полностью интегрированы в .NET Framework. Концепция утверждений реализуется классом Claim.

Ниже описаны важные свойства класса Claim.

  • Свойство Type — это строка (обычно URI), содержащая семантические сведения о утверждении; Он указывает, что означает значение утверждения. Например, утверждение с типом утверждения GivenName ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname") представляет имя пользователя. Значение свойства Type может быть одним из известных типов утверждений, определенных в классе ClaimTypes, или может быть произвольным универсальным кодом ресурса (URI), определенным издателем. Например, тип утверждения urn:spendinglimit может представлять атрибут пользователя, который имеет смысл в бизнес-контексте издателя.

  • Свойство Value содержит значение утверждения. Чтобы уменьшить зависимости и упростить администрирование, в WIF значение утверждения представлено только в виде строки. Для более сложных типов значений рекомендуется использовать стандартные типы схем XML, чтобы указать, как значение должно быть сериализовано в и десериализировать из строки.

  • Свойство ValueType содержит строку, которая определяет сведения о типе значения. Это свойство должно использоваться для понимания формата значения и предоставления сведений о том, как десериализировать его. Если для решения требуются сложные типы значений, рекомендуется использовать стандартные типы xml-схем в свойстве ValueType, чтобы указать, как свойство Value должно быть сериализовано в и десериализировать из строки.

  • Свойство Subject — это объект ClaimsIdentity, представляющий субъект утверждения. Субъектом утверждения является сущность (обычно пользователь, запрашивающий доступ к ресурсу), о котором утверждается утверждение. ClaimsIdentity содержит коллекцию утверждений, описывающих свойства и атрибуты субъекта, как указано одним или несколькими издателями.

  • Свойство Issuer содержит имя сущности, выдавшей утверждение. Издатель утверждения представлен в WIF строкой, содержащей имя, взятое из списка известных издателей, которые поддерживаются реестром имен издателя. Реестр имен издателя — это экземпляр класса, наследуемого от класса IssuerNameRegistry. Реестр имен издателя связывает имя mnemonic с криптографическим материалом, необходимым для проверки подписей маркеров, созданных соответствующим издателем. Например, класс ConfigurationBasedIssuerNameRegistry, доступный из поля с .NET 4.5, связывает имя mnemonic для каждого издателя с соответствующим сертификатом X.509. Список известных издателей обычно создается во время запуска реестром имен издателя. Список, используемый ConfigurationBasedIssuerNameRegistry, указан в файле конфигурации приложения.

  • Свойство OriginalIssuer содержит имя сущности, которая первоначально выдала утверждение. Это свойство предназначено для упрощения сценариев, когда утверждение может пройти через несколько издателей, прежде чем он будет представлен клиентом приложению RP; например, сценарии федерации. Вы можете проверить свойство OriginalIssuer, чтобы определить сущность, которая первоначально выдала утверждение. Имя взято из списка известных издателей, поддерживаемых реестром имен издателя, как в случае свойства Issuer.

Конструкторы

Claim(BinaryReader, ClaimsIdentity)

Инициализирует новый экземпляр класса Claim с указанным средством чтения и субъекта.

Claim(BinaryReader)

Инициализирует экземпляр Claim с указанным BinaryReader.

Claim(Claim, ClaimsIdentity)

Инициализирует новый экземпляр класса Claim с указанным утверждением безопасности и субъектом.

Claim(Claim)

Инициализирует новый экземпляр класса Claim.

Claim(String, String, String, String, String, ClaimsIdentity)

Инициализирует новый экземпляр класса Claim с указанным типом утверждения, значением, типом значения, издателем, исходным издателем и субъектом.

Claim(String, String, String, String, String)

Инициализирует новый экземпляр класса Claim с указанным типом утверждения, значением, типом значения, издателем и исходным издателем.

Claim(String, String, String, String)

Инициализирует новый экземпляр класса Claim с указанным типом утверждения, значением, типом значения и издателем.

Claim(String, String, String)

Инициализирует новый экземпляр класса Claim с указанным типом утверждения, значением и типом значения.

Claim(String, String)

Инициализирует новый экземпляр класса Claim с указанным типом утверждения и значением.

Свойства

CustomSerializationData

Содержит дополнительные данные, предоставляемые производным типом.

Issuer

Возвращает издателя утверждения.

OriginalIssuer

Возвращает исходного издателя утверждения.

Properties

Возвращает словарь, содержащий дополнительные свойства, связанные с этим утверждением.

Subject

Возвращает тему утверждения.

Type

Возвращает тип утверждения утверждения.

Value

Возвращает значение утверждения.

ValueType

Возвращает тип значения утверждения.

Методы

Clone()

Возвращает новый объект Claim, скопированный из этого объекта. Новое утверждение не имеет субъекта.

Clone(ClaimsIdentity)

Возвращает новый объект Claim, скопированный из этого объекта. Субъект нового утверждения имеет указанное значение ClaimsIdentity.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строковое представление этого объекта Claim.

WriteTo(BinaryWriter, Byte[])

Записывает этот Claim в модуль записи.

WriteTo(BinaryWriter)

Записывает этот Claim в модуль записи.

Применяется к

См. также раздел