();
16 | }
17 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "iisSettings": {
3 | "windowsAuthentication": false,
4 | "anonymousAuthentication": true,
5 | "iisExpress": {
6 | "applicationUrl": "http://localhost:51892",
7 | "sslPort": 44301
8 | }
9 | },
10 | "profiles": {
11 | "IIS Express": {
12 | "commandName": "IISExpress",
13 | "launchBrowser": true,
14 | "environmentVariables": {
15 | "ASPNETCORE_ENVIRONMENT": "Development"
16 | }
17 | },
18 | "WebApplication1": {
19 | "commandName": "Project",
20 | "launchBrowser": true,
21 | "applicationUrl": "https://localhost:5001;http://localhost:5000",
22 | "environmentVariables": {
23 | "ASPNETCORE_ENVIRONMENT": "Development"
24 | }
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/Views/Home/Index.cshtml:
--------------------------------------------------------------------------------
1 | HttpClientFactory sample
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/Views/Shared/Error.cshtml:
--------------------------------------------------------------------------------
1 | @model ErrorViewModel
2 | @{
3 | ViewData["Title"] = "Error";
4 | }
5 |
6 | Error.
7 | An error occurred while processing your request.
8 |
9 | @if (Model.ShowRequestId)
10 | {
11 |
12 | Request ID: @Model.RequestId
13 |
14 | }
15 |
16 | Development Mode
17 |
18 | Swapping to Development environment will display more detailed information about the error that occurred.
19 |
20 |
21 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application.
22 |
23 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using WebApplication1
2 | @using WebApplication1.Models
3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
4 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Debug",
5 | "System": "Information",
6 | "Microsoft": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Warning"
5 | }
6 | },
7 | "AllowedHosts": "*"
8 | }
9 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/css/site.css:
--------------------------------------------------------------------------------
1 | /* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification\
2 | for details on configuring this project to bundle and minify static web assets. */
3 | body {
4 | padding-top: 50px;
5 | padding-bottom: 20px;
6 | }
7 |
8 | /* Wrapping element */
9 | /* Set some basic padding to keep content from hitting the edges */
10 | .body-content {
11 | padding-left: 15px;
12 | padding-right: 15px;
13 | }
14 |
15 | /* Carousel */
16 | .carousel-caption p {
17 | font-size: 20px;
18 | line-height: 1.4;
19 | }
20 |
21 | /* Make .svg files in the carousel display properly in older browsers */
22 | .carousel-inner .item img[src$=".svg"] {
23 | width: 100%;
24 | }
25 |
26 | /* QR code generator */
27 | #qrCode {
28 | margin: 15px;
29 | }
30 |
31 | /* Hide/rearrange for smaller screens */
32 | @media screen and (max-width: 767px) {
33 | /* Hide captions */
34 | .carousel-caption {
35 | display: none;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/css/site.min.css:
--------------------------------------------------------------------------------
1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}}
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuendeSoftware/foss/4e49d6b9dca55d8b6746d24256c93cb301156346/identity-model/samples/HttpClientFactory/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/js/site.js:
--------------------------------------------------------------------------------
1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
2 | // for details on configuring this project to bundle and minify static web assets.
3 |
4 | // Write your JavaScript code.
5 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/js/site.min.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuendeSoftware/foss/4e49d6b9dca55d8b6746d24256c93cb301156346/identity-model/samples/HttpClientFactory/wwwroot/js/site.min.js
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuendeSoftware/foss/4e49d6b9dca55d8b6746d24256c93cb301156346/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuendeSoftware/foss/4e49d6b9dca55d8b6746d24256c93cb301156346/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuendeSoftware/foss/4e49d6b9dca55d8b6746d24256c93cb301156346/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuendeSoftware/foss/4e49d6b9dca55d8b6746d24256c93cb301156346/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/bootstrap/dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/jquery-validation-unobtrusive/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery-validation-unobtrusive",
3 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive",
4 | "version": "3.2.9",
5 | "_release": "3.2.9",
6 | "_resolution": {
7 | "type": "version",
8 | "tag": "v3.2.9",
9 | "commit": "a91f5401898e125f10771c5f5f0909d8c4c82396"
10 | },
11 | "_source": "https://github.com/aspnet/jquery-validation-unobtrusive.git",
12 | "_target": "^3.2.9",
13 | "_originalSource": "jquery-validation-unobtrusive",
14 | "_direct": true
15 | }
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) .NET Foundation. All rights reserved.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 | these files except in compliance with the License. You may obtain a copy of the
5 | License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software distributed
10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the
12 | specific language governing permissions and limitations under the License.
13 |
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/jquery-validation/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery-validation",
3 | "homepage": "https://jqueryvalidation.org/",
4 | "repository": {
5 | "type": "git",
6 | "url": "git://github.com/jquery-validation/jquery-validation.git"
7 | },
8 | "authors": [
9 | "Jörn Zaefferer "
10 | ],
11 | "description": "Form validation made easy",
12 | "main": "dist/jquery.validate.js",
13 | "keywords": [
14 | "forms",
15 | "validation",
16 | "validate"
17 | ],
18 | "license": "MIT",
19 | "ignore": [
20 | "**/.*",
21 | "node_modules",
22 | "bower_components",
23 | "test",
24 | "demo",
25 | "lib"
26 | ],
27 | "dependencies": {
28 | "jquery": ">= 1.7.2"
29 | },
30 | "version": "1.17.0",
31 | "_release": "1.17.0",
32 | "_resolution": {
33 | "type": "version",
34 | "tag": "1.17.0",
35 | "commit": "fc9b12d3bfaa2d0c04605855b896edb2934c0772"
36 | },
37 | "_source": "https://github.com/jzaefferer/jquery-validation.git",
38 | "_target": "^1.17.0",
39 | "_originalSource": "jquery-validation",
40 | "_direct": true
41 | }
--------------------------------------------------------------------------------
/identity-model/samples/HttpClientFactory/wwwroot/lib/jquery/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "main": "dist/jquery.js",
4 | "license": "MIT",
5 | "ignore": [
6 | "package.json"
7 | ],
8 | "keywords": [
9 | "jquery",
10 | "javascript",
11 | "browser",
12 | "library"
13 | ],
14 | "homepage": "https://github.com/jquery/jquery-dist",
15 | "version": "3.3.1",
16 | "_release": "3.3.1",
17 | "_resolution": {
18 | "type": "version",
19 | "tag": "3.3.1",
20 | "commit": "9e8ec3d10fad04748176144f108d7355662ae75e"
21 | },
22 | "_source": "https://github.com/jquery/jquery-dist.git",
23 | "_target": "^3.3.1",
24 | "_originalSource": "jquery",
25 | "_direct": true
26 | }
--------------------------------------------------------------------------------
/identity-model/src/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | im-
8 | 7.0
9 |
10 |
11 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/AuthorityValidationResult.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | #pragma warning disable 1591
5 | namespace Duende.IdentityModel.Client;
6 |
7 | public struct AuthorityValidationResult
8 | {
9 | public static readonly AuthorityValidationResult SuccessResult = new(true, null);
10 |
11 | public string ErrorMessage { get; }
12 |
13 | public bool Success { get; }
14 |
15 | private AuthorityValidationResult(bool success, string? message)
16 | {
17 | if (!success && string.IsNullOrEmpty(message))
18 | {
19 | throw new ArgumentException("A message must be provided if success=false.", nameof(message));
20 | }
21 |
22 | ErrorMessage = message!;
23 | Success = success;
24 | }
25 |
26 | public static AuthorityValidationResult CreateError(string message) => new AuthorityValidationResult(false, message);
27 |
28 | public override string ToString() => Success ? "success" : ErrorMessage;
29 | }
30 | #pragma warning restore 1591
31 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/BasicAuthenticationHeaderStyle.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Enum for specifying then encoding style of the basic authentication header
8 | ///
9 | public enum BasicAuthenticationHeaderStyle
10 | {
11 | ///
12 | /// Recommended. Uses the encoding as described in the OAuth 2.0 spec (https://tools.ietf.org/html/rfc6749#section-2.3.1). Base64(urlformencode(client_id) + ":" + urlformencode(client_secret))
13 | ///
14 | Rfc6749,
15 | ///
16 | /// Uses the encoding as described in the original basic authentication spec (https://tools.ietf.org/html/rfc2617#section-2 - used by some non-OAuth 2.0 compliant authorization servers). Base64(client_id + ":" + client_secret).
17 | ///
18 | Rfc2617
19 | }
20 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/ClientCredentialStyle.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Specifies how the client will transmit client ID and secret
8 | ///
9 | public enum ClientCredentialStyle
10 | {
11 | ///
12 | /// HTTP basic authentication
13 | ///
14 | AuthorizationHeader,
15 |
16 | ///
17 | /// Post values in body
18 | ///
19 | PostBody
20 | };
21 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/IDiscoveryCache.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Interface for discovery cache
8 | ///
9 | public interface IDiscoveryCache
10 | {
11 | ///
12 | /// Gets or sets the duration of the cache.
13 | ///
14 | ///
15 | /// The duration of the cache.
16 | ///
17 | TimeSpan CacheDuration { get; set; }
18 |
19 | ///
20 | /// Retrieves the discovery document
21 | ///
22 | ///
23 | Task GetAsync();
24 |
25 | ///
26 | /// Forces a refresh on the next get.
27 | ///
28 | void Refresh();
29 | }
30 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/BackchannelAuthenticationTokenRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for token using urn:openid:params:grant-type:ciba grant type
8 | ///
9 | ///
10 | public class BackchannelAuthenticationTokenRequest : TokenRequest
11 | {
12 | ///
13 | /// REQUIRED. It is the unique identifier to identify the authentication request (transaction) made by the Client.
14 | ///
15 | public string AuthenticationRequestId { get; set; } = default!;
16 |
17 | ///
18 | /// List of requested resources
19 | ///
20 | ///
21 | /// The resources.
22 | ///
23 | public ICollection Resource { get; set; } = new HashSet();
24 | }
25 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/ClientAssertion.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Models a client assertion
8 | ///
9 | public class ClientAssertion
10 | {
11 | ///
12 | /// Gets or sets the assertion type.
13 | ///
14 | ///
15 | /// The type.
16 | ///
17 | public string Type { get; set; } = default!;
18 |
19 | ///
20 | /// Gets or sets the assertion value.
21 | ///
22 | ///
23 | /// The value.
24 | ///
25 | public string Value { get; set; } = default!;
26 | }
27 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/ClientCredentialsTokenRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for token using client_credentials
8 | ///
9 | ///
10 | public class ClientCredentialsTokenRequest : TokenRequest
11 | {
12 | ///
13 | /// Space separated list of the requested scopes
14 | ///
15 | ///
16 | /// The scope.
17 | ///
18 | public string? Scope { get; set; }
19 |
20 | ///
21 | /// List of requested resources
22 | ///
23 | ///
24 | /// The scope.
25 | ///
26 | public ICollection Resource { get; set; } = new HashSet();
27 | }
28 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/ClientMessagesSourceGenerationContext.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | using System.Text.Json.Serialization;
5 |
6 | namespace Duende.IdentityModel.Client;
7 |
8 | [JsonSourceGenerationOptions(
9 | WriteIndented = false,
10 | PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase,
11 | GenerationMode = JsonSourceGenerationMode.Metadata,
12 | DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
13 | [JsonSerializable(typeof(DynamicClientRegistrationDocument))]
14 | internal partial class ClientMessagesSourceGenerationContext : JsonSerializerContext
15 | {
16 | }
17 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/DeviceAuthorizationRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for device authorization
8 | ///
9 | public class DeviceAuthorizationRequest : ProtocolRequest
10 | {
11 | ///
12 | /// Space separated list of the requested scopes (optional).
13 | ///
14 | ///
15 | /// The scope.
16 | ///
17 | public string? Scope { get; set; }
18 | }
19 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/DeviceTokenRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for token using urn:ietf:params:oauth:grant-type:device_code
8 | ///
9 | ///
10 | public class DeviceTokenRequest : TokenRequest
11 | {
12 | ///
13 | /// Gets or sets the device code.
14 | ///
15 | ///
16 | /// The scope.
17 | ///
18 | public string DeviceCode { get; set; } = default!;
19 | }
20 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/DiscoveryDocumentRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for OpenID Connect discovery document
8 | ///
9 | public class DiscoveryDocumentRequest : ProtocolRequest
10 | {
11 | ///
12 | /// Gets or sets the policy.
13 | ///
14 | ///
15 | /// The policy.
16 | ///
17 | public DiscoveryPolicy Policy { get; set; } = new();
18 | }
19 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/DynamicClientRegistrationRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for dynamic client registration
8 | ///
9 | ///
10 | public class DynamicClientRegistrationRequest : ProtocolRequest
11 | {
12 | ///
13 | /// Gets or sets the token.
14 | ///
15 | ///
16 | /// The token.
17 | ///
18 | public string? Token { get; set; }
19 |
20 | ///
21 | /// Gets or sets the registration request.
22 | ///
23 | ///
24 | /// The registration request.
25 | ///
26 | public DynamicClientRegistrationDocument Document { get; set; } = default!;
27 | }
28 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/JsonWebKeySetRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for JSON web key set document
8 | ///
9 | public class JsonWebKeySetRequest : ProtocolRequest
10 | { }
11 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/ParameterReplaceBehavior.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Specifies how parameter in the collection get replaced (or not).
8 | ///
9 | public enum ParameterReplaceBehavior
10 | {
11 | ///
12 | /// Allow multiple
13 | ///
14 | None,
15 |
16 | ///
17 | /// Replace a single parameter with the same key
18 | ///
19 | Single,
20 |
21 | ///
22 | /// Replace all parameters with same key
23 | ///
24 | All
25 | }
26 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/ResponseErrorType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Various reasons for a protocol endpoint error
8 | ///
9 | public enum ResponseErrorType
10 | {
11 | ///
12 | /// none
13 | ///
14 | None,
15 |
16 | ///
17 | /// protocol related - valid response, but some protocol level error.
18 | ///
19 | Protocol,
20 |
21 | ///
22 | /// HTTP error - e.g. 404.
23 | ///
24 | Http,
25 |
26 | ///
27 | /// An exception occurred - exception while connecting to the endpoint, e.g. TLS problems.
28 | ///
29 | Exception,
30 |
31 | ///
32 | /// A policy violation - a configured policy was violated.
33 | ///
34 | PolicyViolation
35 | }
36 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/TokenRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for token
8 | ///
9 | ///
10 | public class TokenRequest : ProtocolRequest
11 | {
12 | ///
13 | /// Gets or sets the type of the grant.
14 | ///
15 | ///
16 | /// The type of the grant.
17 | ///
18 | public string GrantType { get; set; } = default!;
19 | }
20 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/TokenRevocationRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for OAuth token revocation
8 | ///
9 | ///
10 | public class TokenRevocationRequest : ProtocolRequest
11 | {
12 | ///
13 | /// Gets or sets the token.
14 | ///
15 | ///
16 | /// The token.
17 | ///
18 | public string Token { get; set; } = default!;
19 |
20 | ///
21 | /// Gets or sets the token type hint.
22 | ///
23 | ///
24 | /// The token type hint.
25 | ///
26 | public string TokenTypeHint { get; set; } = default!;
27 | }
28 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/TokenRevocationResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Models an OAuth 2.0 token revocation response
8 | ///
9 | ///
10 | public class TokenRevocationResponse : ProtocolResponse
11 | { }
12 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/Messages/UserInfoRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Request for OIDC userinfo
8 | ///
9 | public class UserInfoRequest : ProtocolRequest
10 | {
11 | ///
12 | /// Gets or sets the token.
13 | ///
14 | ///
15 | /// The token.
16 | ///
17 | public string? Token { get; set; }
18 | }
19 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Client/ResponseFormat.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Client;
5 |
6 | ///
7 | /// Specifies the format of the token introspection response.
8 | ///
9 | public enum ResponseFormat
10 | {
11 | ///
12 | /// Plain JSON introspection response (default).
13 | ///
14 | Json,
15 |
16 | ///
17 | /// JWT introspection response.
18 | ///
19 | Jwt
20 | }
21 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/IdentityModel.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | netstandard2.0;net8.0
4 | Duende.IdentityModel
5 | Duende.IdentityModel
6 | OpenID Connect & OAuth 2.0 client library
7 | Duende.IdentityModel
8 | OAuth2;OAuth 2.0;OpenID Connect;Security;Identity;IdentityServer
9 | true
10 | true
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Internal/AsyncLazy.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Internal;
5 |
6 | internal class AsyncLazy : Lazy>
7 | {
8 | public AsyncLazy(Func> taskFactory) :
9 | base(() => GetTaskAsync(taskFactory).Unwrap())
10 | { }
11 |
12 | private static async Task> GetTaskAsync(Func> taskFactory)
13 | {
14 | if (TaskHelpers.CanFactoryStartNew)
15 | {
16 | // Runs the task factory in a background thread and retrieves the resulting task.
17 | return Task>.Factory.StartNew(taskFactory).Unwrap();
18 | }
19 | else
20 | {
21 | // Let the task factory run synchronously in its own context.
22 | await Task.Yield();
23 |
24 | return taskFactory();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Jwk/JsonWebAlgorithmsKeyTypes.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Jwk;
5 |
6 | ///
7 | /// Constants for JsonWebAlgorithms "kty" Key Type (sec 6.1)
8 | /// http://tools.ietf.org/html/rfc7518#section-6.1
9 | ///
10 | public static class JsonWebAlgorithmsKeyTypes
11 | {
12 | #pragma warning disable 1591
13 | public const string EllipticCurve = "EC";
14 | public const string RSA = "RSA";
15 | public const string Octet = "oct";
16 | #pragma warning restore 1591
17 | }
18 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Jwk/JwkExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | using System.Text;
5 | using System.Text.Json;
6 |
7 | namespace Duende.IdentityModel.Jwk;
8 |
9 | ///
10 | /// Extensions for JsonWebKey
11 | ///
12 | public static class JsonWebKeyExtensions
13 | {
14 | ///
15 | /// Converts a JSON web key to a URL safe string.
16 | ///
17 | /// The key.
18 | ///
19 | public static string ToJwkString(this JsonWebKey key)
20 | {
21 | var json = JsonSerializer.Serialize(key, JwkSourceGenerationContext.Default.JsonWebKey);
22 | return Base64Url.Encode(Encoding.UTF8.GetBytes(json));
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Jwk/JwkSourceGenerationContext.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | using System.Text.Json.Serialization;
5 |
6 | namespace Duende.IdentityModel.Jwk;
7 |
8 | [JsonSourceGenerationOptions(
9 | WriteIndented = false,
10 | PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase,
11 | GenerationMode = JsonSourceGenerationMode.Metadata,
12 | DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
13 | [JsonSerializable(typeof(JsonWebKey))]
14 | [JsonSerializable(typeof(JsonWebKeySet))]
15 | internal partial class JwkSourceGenerationContext : JsonSerializerContext
16 | {
17 | }
18 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/Validation/ITokenIntrospectionJwtResponseValidator.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.Validation;
5 | public interface ITokenIntrospectionJwtResponseValidator
6 | {
7 | ///
8 | /// Perform additional validation on the introspection response.
9 | ///
10 | /// The raw token introspection response.
11 | void Validate(string rawJwtResponse);
12 | }
13 |
--------------------------------------------------------------------------------
/identity-model/src/IdentityModel/X509.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | using System.Security.Cryptography.X509Certificates;
5 |
6 | #pragma warning disable 1591
7 |
8 | namespace Duende.IdentityModel;
9 |
10 | public static class X509
11 | {
12 | public static X509CertificatesLocation CurrentUser => new X509CertificatesLocation(StoreLocation.CurrentUser);
13 | public static X509CertificatesLocation LocalMachine => new X509CertificatesLocation(StoreLocation.LocalMachine);
14 | }
15 |
--------------------------------------------------------------------------------
/identity-model/src/TrimmableAnalysis/Program.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | Console.WriteLine("Hello, World!");
5 |
--------------------------------------------------------------------------------
/identity-model/src/TrimmableAnalysis/README.md:
--------------------------------------------------------------------------------
1 | This project exists to facilitate analysis of trimmable warnings.
2 |
3 | See https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/prepare-libraries-for-trimming
--------------------------------------------------------------------------------
/identity-model/src/TrimmableAnalysis/TrimmableAnalysis.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net8.0;net9.0
6 | enable
7 | true
8 | false
9 | true
10 | $(NoWarn);NU1507
11 | false
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/identity-model/test/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/GlobalUsings.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | global using System.Net;
5 | global using System.Net.Http;
6 |
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/HttpClientExtensions/HttpRequestMethodExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IdentityModel.HttpClientExtensions;
5 |
6 | internal static class HttpRequestMethodExtensions
7 | {
8 | public static IDictionary GetProperties(this HttpRequestMessage requestMessage) =>
9 | #if NETFRAMEWORK
10 | requestMessage.Properties;
11 | #else
12 | requestMessage.Options;
13 | #endif
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/IdentityModel.Tests.net481.v3.ncrunchproject:
--------------------------------------------------------------------------------
1 |
2 |
3 | True
4 |
5 | CopyReferencedAssembliesToWorkspaceIsOn
6 |
7 |
8 |
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/Infrastructure/FileName.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | using System.Runtime.CompilerServices;
5 |
6 | namespace Duende.IdentityModel.Infrastructure;
7 |
8 | internal static class FileName
9 | {
10 | public static string Create(string name) => Path.Combine(UnitTestsPath(), "documents", name);
11 |
12 | private static string UnitTestsPath([CallerFilePath] string path = "") => Path.GetFullPath(Path.Combine(Path.GetDirectoryName(path), ".."));
13 | }
14 |
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/Verifications/PublicApiVerificationTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | #if NET8_0
5 | using PublicApiGenerator;
6 | namespace Duende.IdentityModel.Verifications;
7 |
8 | public class PublicApiVerificationTests
9 | {
10 |
11 | [Fact]
12 | public async Task VerifyPublicApi()
13 | {
14 | var apiGeneratorOptions = new ApiGeneratorOptions
15 | {
16 | IncludeAssemblyAttributes = false
17 | };
18 | var publicApi = typeof(JwtClaimTypes).Assembly.GeneratePublicApi(apiGeneratorOptions);
19 | var settings = new VerifySettings();
20 | await Verify(publicApi, settings);
21 | }
22 | }
23 | #endif
24 |
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/failure_device_authorization_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "error": "error",
3 | "error_description": "error_description",
4 | "custom": "custom"
5 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/failure_registration_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "error": "invalid_redirect_uri",
3 | "error_description": "One or more redirect_uri values are invalid",
4 | "custom": "custom"
5 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/failure_token_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "error": "error",
3 | "error_description": "error_description",
4 | "custom": "custom"
5 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/failure_token_revocation_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "error": "error"
3 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/legacy_success_introspection_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "aud": [ "https://idsvr4/resources", "api1" ],
3 | "iss": "https://idsvr4",
4 | "nbf": 1475824871,
5 | "exp": 1475828471,
6 | "client_id": "client",
7 | "sub": "1",
8 | "auth_time": 1475824871,
9 | "idp": "local",
10 | "amr": "password",
11 | "active": true,
12 | "scope": [ "api1", "api2" ]
13 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_access_token_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "access_token": "access_token",
3 | "expires_in": 3600,
4 | "token_type": "Bearer",
5 | "custom": "custom"
6 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_ciba_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "auth_req_id": "1c266114-a1be-4252-8ad1-04986c5b9ac1",
3 | "expires_in": 120,
4 | "interval": 2
5 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_device_authorization_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "device_code": "GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8",
3 | "user_code": "WDJB-MJHT",
4 | "verification_uri": "https://www.example.com/device",
5 | "verification_uri_complete": "https://www.example.com/device?user_code=WDJB-MJHT",
6 | "expires_in": 1800,
7 | "interval": 10
8 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_introspection_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "aud": [ "https://idsvr4/resources", "api1" ],
3 | "iss": "https://idsvr4",
4 | "nbf": 1475824871,
5 | "exp": 1475828471,
6 | "client_id": "client",
7 | "sub": "1",
8 | "auth_time": 1475824871,
9 | "idp": "local",
10 | "amr": "password",
11 | "active": true,
12 | "scope": "api1 api2"
13 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_introspection_response.jwt:
--------------------------------------------------------------------------------
1 | eyJraWQiOiJ3RzZEIiwidHlwIjoidG9rZW4taW50cm9zcGVjdGlvbitqd3QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FzLmV4YW1wbGUuY29tLyIsImF1ZCI6Imh0dHBzOi8vcnMuZXhhbXBsZS5jb20vcmVzb3VyY2UiLCJpYXQiOjE1MTQ3OTc4OTIsInRva2VuX2ludHJvc3BlY3Rpb24iOnsiYWN0aXZlIjp0cnVlLCJpc3MiOiJodHRwczovL2FzLmV4YW1wbGUuY29tLyIsImF1ZCI6Imh0dHBzOi8vcnMuZXhhbXBsZS5jb20vcmVzb3VyY2UiLCJpYXQiOjE1MTQ3OTc4MjIsImV4cCI6MTUxNDc5Nzk0MiwiY2xpZW50X2lkIjoicGFpQjJnb28wYSIsInNjb3BlIjoicmVhZCB3cml0ZSBkb2xwaGluIiwic3ViIjoiWjVPM3VwUEM4OFFyQWp4MDBkaXMiLCJiaXJ0aGRhdGUiOiIxOTgyLTAyLTAxIiwiZ2l2ZW5fbmFtZSI6IkpvaG4iLCJmYW1pbHlfbmFtZSI6IkRvZSIsImp0aSI6InQxRm9DQ2FaZDRYdjRPUkpVV1ZVZVRaZnNLaFczMENRQ3JXRERqd1h5NncifX0.przJMU5GhmNzvwtt1Sr-xa9xTkpiAg5IshbQsRiRVP_7eGR1GHYrNwQh84kxOkHCyje2g5WSRcYosGEVIiC-eoPJJ-qBwqwSlgx9JEeCDw2W5DjrblOI_N0Jvsq_dUeOyoWVMqlOydOBhKNY0smBrI4NZvEExucOm9WUJXMuJtvq1gBes-0go5j4TEv9sOP9uu81gqWTr_LOo6pgT0tFFyZfWC4kbXPXiQ2YT6mxCiQRRNM-l9cBdF6Jx6IOrsfFhBuYdYQ_mlL19HgDDOFaleyqmru6lKlASOsaE8dmLSeKcX91FbG79FKN8un24iwIDCbKT9xlUFl54xWVShNDFA
2 |
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_introspection_response_no_issuer.json:
--------------------------------------------------------------------------------
1 | {
2 | "aud": [ "https://idsvr4/resources", "api1" ],
3 | "nbf": 1475824871,
4 | "exp": 1475828471,
5 | "client_id": "client",
6 | "sub": "1",
7 | "auth_time": 1475824871,
8 | "idp": "local",
9 | "amr": "password",
10 | "active": true,
11 | "scope": "api1 api2"
12 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_par_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "expires_in": 600,
3 | "request_uri": "urn:ietf:params:oauth:request_uri:123456"
4 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_token_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "access_token": "access_token",
3 | "expires_in": 3600,
4 | "token_type": "Bearer",
5 | "refresh_token": "refresh_token",
6 | "custom": "custom"
7 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_userinfo_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "sub": "88421113",
3 | "email": "BobSmith@email.com",
4 | "email_verified": true
5 | }
--------------------------------------------------------------------------------
/identity-model/test/IdentityModel.Tests/documents/success_userinfo_response.jwt:
--------------------------------------------------------------------------------
1 | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2lkZW50aXR5LmV4YW1wbGUuY29tIiwiYXVkIjoiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20iLCJzdWIiOiIyNDgyODk3NjEwMDEiLCJuYW1lIjoiSmFuZSBEb2UiLCJnaXZlbl9uYW1lIjoiSmFuZSIsImZhbWlseV9uYW1lIjoiRG9lIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiai5kb2UiLCJlbWFpbCI6ImphbmVkb2VAZXhhbXBsZS5jb20iLCJwaWN0dXJlIjoiaHR0cDovL2V4YW1wbGUuY29tL2phbmVkb2UvbWUuanBnIn0.WmamfT6SSfVrJ6iBqPprRvbjKlQpd_8OcjLSbKbfMTQ
--------------------------------------------------------------------------------
/ignore-this/.config/dotnet-tools.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1,
3 | "isRoot": true,
4 | "tools": {
5 | "NuGetKeyVaultSignTool": {
6 | "version": "3.2.3",
7 | "commands": [
8 | "NuGetKeyVaultSignTool"
9 | ]
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/ignore-this/README.md:
--------------------------------------------------------------------------------
1 | # Ignore This
2 |
3 | Ignore this package; it's used internally to test our package publishing process.
--------------------------------------------------------------------------------
/ignore-this/src/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | it-
8 | 0.1
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ignore-this/src/IgnoreThis/IgnoreThis.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | net8.0
4 | enable
5 | true
6 | Duende.IgnoreThis
7 | $(PackageId)
8 | $(PackageId)
9 | Automatic access token management for OAuth client credential flows
10 |
11 |
--------------------------------------------------------------------------------
/ignore-this/test/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/ignore-this/test/IgnoreThis.Tests/Class1.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | namespace Duende.IgnoreThis;
5 |
6 | public class Class1
7 | {
8 | [Fact]
9 | public void Test1()
10 | { }
11 | }
12 |
--------------------------------------------------------------------------------
/ignore-this/test/IgnoreThis.Tests/IgnoreThis.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | net8.0
4 | Duende.IgnoreThis
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ignore-this/test/IgnoreThis.Tests/Usings.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Duende Software. All rights reserved.
2 | // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3 |
4 | global using Xunit;
5 |
--------------------------------------------------------------------------------
/key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DuendeSoftware/foss/4e49d6b9dca55d8b6746d24256c93cb301156346/key.snk
--------------------------------------------------------------------------------
/samples.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(NoWarn);1591;NU1507
5 | latest
6 | false
7 | true
8 | enable
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------