Class SamlSingleLogoutSuccessEvent
- Namespace
- Fdyay.IdentityServer.Events
- Assembly
- Fdyay.IdentityServer.Core.dll
A single logout sequence ran to the end.
public class SamlSingleLogoutSuccessEvent : Event
- Inheritance
-
SamlSingleLogoutSuccessEvent
- Inherited Members
Remarks
Sign-on had a success event and logout did not, which is note 11 inside the surface whose job is
noticing things. SamlSignOnSuccessEvent has recorded this server vouching for a user
since 0.51.0; the other operation recorded only its refusals. A completed single logout reached
UserLogoutSuccessEvent through the shared sign-out sequence — which is true and is about the
session, not about the protocol exchange. An operator asking "did the SAML logout I started
actually finish" could not tell a sequence that completed from one that stalled at a hop the browser never
came back from, because both leave exactly one UserLogoutSuccessEvent and nothing else.
Raised where the sequence ends rather than where the session does, and those are different moments: the session ends on the first pass, and the last participant may be several browser hops later. It is raised even when the requester cannot be told the answer, because the logout did complete — SamlLogoutNotificationFailureEvent is what records the partner left uninformed, and a partner that could not be reached must not turn "this finished" into silence. That is 0.51.0's rule for BackChannelLogoutFailureEvent, applied to the other protocol.
No count of participants notified, though it is the field somebody would ask for. Each hop is a separate request and the sequence state carries who is left rather than who has been told, so this raise site cannot fill such a member honestly — and a member holding a value its only raise site has to guess at is the defect this document catalogues, not a convenience.
Constructors
SamlSingleLogoutSuccessEvent(string, string)
A single logout sequence that ran to the end.
public SamlSingleLogoutSuccessEvent(string requesterEntityId, string subjectNameId)
Parameters
requesterEntityIdstringThe service provider that started the sequence.
subjectNameIdstringWhose session ended, as the sequence named them.
Properties
RequesterEntityId
The service provider that started the sequence.
public string RequesterEntityId { get; }
Property Value
Remarks
Not nullable, and that is a claim about the paths rather than a convenience: a sequence only exists
because a service provider asked for one, and the logout session carries its entity id as a
required member. A local sign-out does not reach here.
SubjectNameId
Whose session ended, as the sequence named them.
public string SubjectNameId { get; }