实例介绍
IdentityModel:基于声明的身份、OAuth 2.0和OpenID Connect的.NET标准助手库源码下载
IdentityModel是一个专为.NET开发者设计的标准助手库,它提供了一系列功能来支持基于声明的身份验证、OAuth 2.0协议和OpenID Connect。这个库旨在简化认证和授权过程中的复杂性,使得开发者可以更加容易地构建安全可靠的应用程序。
该库的特点包括轻松集成OAuth 2.0和OpenID Connect流程、管理和验证JWT令牌等。它是构建现代应用程序中不可或缺的工具之一。
// 示例代码
// 使用IdentityModel进行OAuth 2.0认证
var client = new HttpClient();
var disco = await client.GetDiscoveryDocumentAsync("https://youridentityserver.com");
if (disco.IsError) {
Console.WriteLine(disco.Error);
return;
}
var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest {
Address = disco.TokenEndpoint,
ClientId = "client-id",
ClientSecret = "client-secret",
Scope = "api1"
});
if (tokenResponse.IsError) {
Console.WriteLine(tokenResponse.Error);
return;
}
Console.WriteLine(tokenResponse.Json);
【实例截图】
【核心代码】
文件清单
└── IdentityModel-0d5186eb846df86b1228fdfb73dceed7d69d9ad0
├── build
│ ├── build.csproj
│ └── Program.cs
├── build.cmd
├── build.ps1
├── build.sh
├── global.json
├── icon.jpg
├── IdentityModel.sln
├── key.snk
├── LICENSE
├── README.md
├── samples
│ └── HttpClientFactorySample
│ ├── HttpClientFactory.sln
│ └── WebApplication1
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Controllers
│ │ └── HomeController.cs
│ ├── HttpClientFactory.csproj
│ ├── Models
│ │ └── ErrorViewModel.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── Views
│ │ ├── Home
│ │ │ └── Index.cshtml
│ │ ├── Shared
│ │ │ ├── _CookieConsentPartial.cshtml
│ │ │ ├── Error.cshtml
│ │ │ ├── _Layout.cshtml
│ │ │ └── _ValidationScriptsPartial.cshtml
│ │ ├── _ViewImports.cshtml
│ │ └── _ViewStart.cshtml
│ └── wwwroot
│ ├── css
│ │ ├── site.css
│ │ └── site.min.css
│ ├── favicon.ico
│ ├── images
│ │ ├── banner1.svg
│ │ ├── banner2.svg
│ │ └── banner3.svg
│ ├── js
│ │ ├── site.js
│ │ └── site.min.js
│ └── lib
│ ├── bootstrap
│ │ ├── dist
│ │ │ ├── css
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap.min.css.map
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ └── bootstrap-theme.min.css.map
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ └── js
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.min.js
│ │ │ └── npm.js
│ │ └── LICENSE
│ ├── jquery
│ │ ├── dist
│ │ │ ├── jquery.js
│ │ │ ├── jquery.min.js
│ │ │ └── jquery.min.map
│ │ └── LICENSE.txt
│ ├── jquery-validation
│ │ ├── dist
│ │ │ ├── additional-methods.js
│ │ │ ├── additional-methods.min.js
│ │ │ ├── jquery.validate.js
│ │ │ └── jquery.validate.min.js
│ │ └── LICENSE.md
│ └── jquery-validation-unobtrusive
│ ├── jquery.validate.unobtrusive.js
│ ├── jquery.validate.unobtrusive.min.js
│ └── LICENSE.txt
├── src
│ ├── Base64Url.cs
│ ├── ClaimComparer.cs
│ ├── Client
│ │ ├── AuthorityUrlValidationStrategy.cs
│ │ ├── AuthorityValidationResult.cs
│ │ ├── BasicAuthenticationHeaderStyle.cs
│ │ ├── BasicAuthenticationHeaderValue.cs
│ │ ├── BasicAuthenticationOAuthHeaderValue.cs
│ │ ├── ClientCredentialStyle.cs
│ │ ├── ClientOptions.cs
│ │ ├── DiscoveryCache.cs
│ │ ├── DiscoveryEndpoint.cs
│ │ ├── DiscoveryPolicy.cs
│ │ ├── Extensions
│ │ │ ├── AuthorizationHeaderExtensions.cs
│ │ │ ├── HttpClientBackchannelAuthenticationExtensions.cs
│ │ │ ├── HttpClientDeviceFlowExtensions.cs
│ │ │ ├── HttpClientDiscoveryExtensions.cs
│ │ │ ├── HttpClientDynamicRegistrationExtensions.cs
│ │ │ ├── HttpClientJsonWebKeySetExtensions.cs
│ │ │ ├── HttpClientTokenIntrospectionExtensions.cs
│ │ │ ├── HttpClientTokenRequestExtensions.cs
│ │ │ ├── HttpClientTokenRevocationExtensions.cs
│ │ │ ├── HttpClientUserInfoExtensions.cs
│ │ │ ├── JsonElementExtensions.cs
│ │ │ └── RequestUrlExtensions.cs
│ │ ├── IAuthorityValidationStrategy.cs
│ │ ├── IDiscoveryCache.cs
│ │ ├── IntrospectionClient.cs
│ │ ├── Messages
│ │ │ ├── AuthorizationCodeTokenRequest.cs
│ │ │ ├── AuthorizeResponse.cs
│ │ │ ├── BackchannelAuthenticationRequest.cs
│ │ │ ├── BackchannelAuthenticationResponse.cs
│ │ │ ├── BackchannelAuthenticationTokenRequest.cs
│ │ │ ├── ClientAssertion.cs
│ │ │ ├── ClientCredentialsTokenRequest.cs
│ │ │ ├── ClientMessagesSourceGenerationContext.cs
│ │ │ ├── DeviceAuthorizationRequest.cs
│ │ │ ├── DeviceAuthorizationResponse.cs
│ │ │ ├── DeviceTokenRequest.cs
│ │ │ ├── DiscoveryDocumentRequest.cs
│ │ │ ├── DiscoveryDocumentResponse.cs
│ │ │ ├── DynamicClientRegistrationDocument.cs
│ │ │ ├── DynamicClientRegistrationRequest.cs
│ │ │ ├── DynamicClientRegistrationResponse.cs
│ │ │ ├── JsonWebKeySetRequest.cs
│ │ │ ├── JsonWebKeySetResponse.cs
│ │ │ ├── MtlsEndpointAliases.cs
│ │ │ ├── ParameterReplaceBehavior.cs
│ │ │ ├── Parameters.cs
│ │ │ ├── PasswordTokenRequest.cs
│ │ │ ├── ProtocolRequest.cs
│ │ │ ├── ProtocolResponse.cs
│ │ │ ├── RefreshTokenRequest.cs
│ │ │ ├── ResponseErrorType.cs
│ │ │ ├── TokenExchangeTokenRequest.cs
│ │ │ ├── TokenIntrospectionRequest.cs
│ │ │ ├── TokenIntrospectionResponse.cs
│ │ │ ├── TokenRequest.cs
│ │ │ ├── TokenResponse.cs
│ │ │ ├── TokenRevocationRequest.cs
│ │ │ ├── TokenRevocationResponse.cs
│ │ │ ├── UserInfoRequest.cs
│ │ │ └── UserInfoResponse.cs
│ │ ├── RequestUrl.cs
│ │ ├── StringComparisonAuthorityValidationStrategy.cs
│ │ └── TokenClient.cs
│ ├── CryptoRandom.cs
│ ├── DateTimeExtensions.cs
│ ├── Identity.cs
│ ├── IdentityModel.csproj
│ ├── Internal
│ │ ├── AsyncLazy.cs
│ │ ├── InternalStringExtensions.cs
│ │ ├── QueryHelpers.cs
│ │ └── TaskHelpers.cs
│ ├── Jwk
│ │ ├── JsonWebAlgorithmsKeyTypes.cs
│ │ ├── JsonWebkey.cs
│ │ ├── JsonWebKeyParameterNames.cs
│ │ ├── JsonWebKeySet.cs
│ │ ├── JwkExtensions.cs
│ │ └── JwkSourceGenerationContext.cs
│ ├── JwtClaimTypes.cs
│ ├── OidcConstants.cs
│ ├── Principal.cs
│ ├── StringExtensions.cs
│ ├── TimeConstantComparer.cs
│ └── X509Certificates
│ ├── X509CertificatesFinder.cs
│ ├── X509CertificatesLocation.cs
│ ├── X509CertificatesName.cs
│ └── X509.cs
└── test
├── TrimmableAnalysis
│ ├── Program.cs
│ ├── README.md
│ └── TrimmableAnalysis.csproj
└── UnitTests
├── AuthorizeResponseTests.cs
├── BasicAuthenticationEncodingTests.cs
├── ClaimsComparisonTests.cs
├── DiscoveryCacheTests.cs
├── DiscoveryPolicyTests_AuthorityStringComparison.cs
├── DiscoveryPolicyTests_AuthorityUriComparison.cs
├── DiscoveryPolicyTestsBase.cs
├── DiscoveryPolicyTests_WithoutAuthorityValidation.cs
├── documents
│ ├── discovery.json
│ ├── discovery_jwks.json
│ ├── discovery_mtls.json
│ ├── discovery_variable.json
│ ├── failure_device_authorization_response.json
│ ├── failure_registration_response.json
│ ├── failure_token_response.json
│ ├── failure_token_revocation_response.json
│ ├── legacy_success_introspection_response.json
│ ├── success_access_token_response.json
│ ├── success_ciba_response.json
│ ├── success_device_authorization_response.json
│ ├── success_introspection_response.json
│ ├── success_introspection_response_no_issuer.json
│ ├── success_registration_response.json
│ ├── success_token_response.json
│ └── success_userinfo_response.json
├── HttpClientExtensions
│ ├── CibaExtensionsTests.cs
│ ├── DeviceAuthorizationExtensionsTests.cs
│ ├── DiscoveryExtensionsTests.cs
│ ├── DynamicClientRegistrationTests.cs
│ ├── JsonWebKeyExtensionsTests.cs
│ ├── TokenIntrospectionTests.cs
│ ├── TokenRequestExtensionsRequestTests.cs
│ ├── TokenRequestExtensionsResponseTests.cs
│ ├── TokenRevocationExtensions.cs
│ └── UserInfoExtensionsTests.cs
├── Infrastructure
│ ├── FileName.cs
│ └── NetworkHandler.cs
├── Internal
│ └── ParametersTest.cs
├── RequestUrlTests.cs
├── TokenClientRequestTests.cs
└── UnitTests.csproj
40 directories, 196 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论