File: Passkeys\CollectedClientData.cs
Web Access
Project: src\src\Identity\Core\src\Microsoft.AspNetCore.Identity.csproj (Microsoft.AspNetCore.Identity)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace Microsoft.AspNetCore.Identity;
 
/// <summary>
/// Represents the client data passed to <c>navigator.credentials.get()</c> or <c>navigator.credentials.create()</c>.
/// </summary>
/// <remarks>
/// See <see href="https://www.w3.org/TR/webauthn-3/#dictdef-collectedclientdata"/>
/// </remarks>
internal sealed class CollectedClientData
{
    /// <summary>
    /// Gets or sets the type of the operation that produced the client data.
    /// </summary>
    /// <remarks>
    /// Will be either "webauthn.create" or "webauthn.get".
    /// </remarks>
    public required string Type { get; init; }
 
    /// <summary>
    /// Gets or sets the challenge provided by the relying party.
    /// </summary>
    public required BufferSource Challenge { get; init; }
 
    /// <summary>
    /// Gets or sets the fully qualified origin of the requester.
    /// </summary>
    public required string Origin { get; init; }
 
    /// <summary>
    /// Gets or sets whether the credential creation request was initiated from
    /// a different origin than the one associated with the relying party.
    /// </summary>
    public bool? CrossOrigin { get; init; }
 
    /// <summary>
    /// Gets or sets information about the state of the token binding protocol.
    /// </summary>
    public TokenBinding? TokenBinding { get; init; }
}