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


SessionSecurityToken Класс

Определение

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

public ref class SessionSecurityToken : System::IdentityModel::Tokens::SecurityToken, System::Runtime::Serialization::ISerializable
[System.Serializable]
public class SessionSecurityToken : System.IdentityModel.Tokens.SecurityToken, System.Runtime.Serialization.ISerializable
[<System.Serializable>]
type SessionSecurityToken = class
    inherit SecurityToken
    interface ISerializable
Public Class SessionSecurityToken
Inherits SecurityToken
Implements ISerializable
Наследование
SessionSecurityToken
Атрибуты
Реализации

Комментарии

Маркер сеанса хранит ClaimsPrincipal пользователя, связанного с сеансом, а также другие параметры, определяющие сеанс, например время начала и окончания сеанса.

В пассивных сценариях WSFederationAuthenticationModule вызовы ( SessionAuthenticationModule SAM) из конвейера проверки подлинности для создания маркера сеанса из ClaimsPrincipal , представляющего пользователя, прошедшего проверку подлинности. SAM использует настроенный маркер SessionSecurityTokenHandler для создания маркера и сериализации его в файл cookie (а также для десериализации маркера из файла cookie при последующих запросах). SAM использует экземпляр настроенного CookieHandler класса для записи файла cookie обратно в HTTP-ответ. Затем этот файл cookie возвращается клиенту, и при последующих запросах клиент может представить файл cookie, а не отправляться обратно поставщику удостоверений для повторного получения маркера безопасности. Дополнительные сведения о том, как сеансы работают с WIF, см. в разделе Управление сеансами WIF. Сведения об использовании сеансов в сценариях веб-фермы см. в разделе WIF и веб-фермы.

Маркер сеанса может работать в режиме ссылки или нет. Если маркер сеанса не работает в режиме ссылок, весь маркер сериализуется в файл cookie сеанса, хранящийся на клиенте. Сериализованный маркер сеанса может быть довольно большим, и, таким образом, файл cookie, хранящийся на клиенте, также может быть довольно значительным. В режиме ссылки вместо сериализации всего маркера сеанса в файл cookie маркер хранится в кэше маркеров безопасности сеанса, и в файле cookie хранятся только сведения, используемые для создания ключа, необходимого для извлечения маркера из кэша. Это может значительно уменьшить размер файла cookie. Кэш маркеров сеанса реализуется классом, производным от SessionSecurityTokenCache , а ключ кэша реализуется классом SessionSecurityTokenCacheKey . Свойства ContextId и KeyGeneration используются в SessionSecurityTokenCacheKey классе для создания ключа кэша.

Свойство IsReferenceMode определяет, находится ли маркер сеанса в режиме ссылки.

Важно!

Для работы в режиме ссылок корпорация Майкрософт рекомендует предоставить обработчик события WSFederationAuthenticationModule.SessionSecurityTokenCreated в файле global.asax.cs и задать IsReferenceMode свойство для токена, переданного в свойстве SessionSecurityTokenCreatedEventArgs.SessionToken . Это гарантирует, что маркер сеанса будет работать в режиме ссылок для каждого запроса и предпочтет просто задать SessionAuthenticationModule.IsReferenceMode свойство в модуле проверки подлинности сеанса.

Класс, предоставляемый SessionSecurityTokenHandler с WIF, сериализует маркер сеанса как элемент WS-Secure Conversation <wsc:SecurityContextToken> .

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

SessionSecurityToken(ClaimsPrincipal)

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

SessionSecurityToken(ClaimsPrincipal, String)

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

SessionSecurityToken(ClaimsPrincipal, String, Nullable<DateTime>, Nullable<DateTime>)

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

SessionSecurityToken(ClaimsPrincipal, String, String, Nullable<DateTime>, Nullable<DateTime>)

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

SessionSecurityToken(ClaimsPrincipal, TimeSpan)

Инициализирует новый экземпляр класса SessionSecurityToken из указанного субъекта. Новый токен действителен с момента UtcNow и до указанного срока существования.

SessionSecurityToken(ClaimsPrincipal, UniqueId, String, String, DateTime, TimeSpan, SymmetricSecurityKey)

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

SessionSecurityToken(ClaimsPrincipal, UniqueId, String, String, Nullable<DateTime>, Nullable<DateTime>, SymmetricSecurityKey)

Инициализирует новый экземпляр класса SessionSecurityToken, используя указанного субъекта, идентификатор контекста, контекст, конечную точку, время начала, время окончания срока действия и ключ.

SessionSecurityToken(ClaimsPrincipal, UniqueId, String, String, TimeSpan, SymmetricSecurityKey)

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

SessionSecurityToken(SerializationInfo, StreamingContext)

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

Свойства

ClaimsPrincipal

Получает субъект требований, связанный с сеансом.

Context

Получает Указанное пользователем значение контекста.

ContextId

Возвращает идентификатор контекста сеанса.

EndpointId

Получает идентификатор конечной точки, к которой относится данный токен.

Id

Получает уникальный идентификатор данного токена.

IsPersistent

Получает или задает значение, указывающее, является ли представляемый этим токеном файл cookie постоянным.

IsReferenceMode

Получает или задает значение, указывающее, работает ли токен безопасности сеанса в режиме ссылки.

KeyEffectiveTime

Получает момент времени, когда ключ данного токена становится действительным.

KeyExpirationTime

Получает момент времени, после которого ключ в данном токене больше не действителен.

KeyGeneration

Возвращает идентификатор для создания ключа в данном токене.

SecureConversationVersion

Получает URI, указывающий версию WS-Secure Conversation, используемую для сериализации этого токена безопасности сеанса.

SecurityKeys

Получает ключи, связанные с данным сеансом. Обычно это один ключ.

ValidFrom

Получает момент времени, когда токен становится действительным.

ValidTo

Получает момент времени, после которого токен больше не действителен.

Методы

CanCreateKeyIdentifierClause<T>()

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

(Унаследовано от SecurityToken)
CreateKeyIdentifierClause<T>()

Создает предложение заданного идентификатора ключа.

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

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

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

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

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

Задает объект SerializationInfo, содержащий сведения, необходимые для сериализации токена безопасности сеанса.

GetType()

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

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

Возвращает значение, указывающее, можно ли идентификатор ключа данного экземпляра разрешить в определенный идентификатор ключа.

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

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

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

Возвращает ключ для указанного предложения идентификатора ключа.

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

Возвращает строку, представляющую текущий объект.

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

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

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