OAuth 2.0令牌撤销的客户端库是作为扩展方法提供的HttpClient. 以下代码撤消撤销端点处的访问令牌令牌: var client = new HttpClient(); var result = await client.RevokeTokenAsync(new TokenRevocationRequest { Address = "https://demo.identityserver.io/connect/revocation", ClientId = "cl…
OAuth 2.0令牌自省的客户端库是作为HttpClient扩展方法提供的. 以下代码将引用令牌发送到内省端点: var client = new HttpClient(); var response = await client.IntrospectTokenAsync(new TokenIntrospectionRequest { Address = "https://demo.identityserver.io/connect/introspect", ClientId = &…
OAuth 2.0设备流设备授权的客户端库是作为HttpClient扩展方法提供的. 以下代码发送设备授权请求: var client = new HttpClient(); var response = await client.RequestDeviceAuthorizationAsync(new DeviceAuthorizationRequest { Address = "https://demo.identityserver.io/connect/device_authorize&qu…
令牌端点的客户端库(OAuth 2.0和OpenID Connect)作为HttpClient一组扩展方法提供.这允许HttpClient以您喜欢的方式创建和管理生命周期- 例如静态或通过像Microsoft这样的工厂HttpClientFactory. 4.1 请求令牌 调用主扩展方法RequestTokenAsync- 它直接支持标准参数,如客户端ID /机密(或断言)和授权类型,但它也允许通过字典设置任意其他参数.所有其他扩展方法最终在内部调用此方法: var client = new H…
OpenID Connect UserInfo端点的客户端库是作为扩展HttpClient方法提供的. 以下代码将访问令牌发送到UserInfo端点: var client = new HttpClient(); var response = await client.GetUserInfoAsync(new UserInfoRequest { Address = disco.UserInfoEndpoint, Token = token }); 响应属于UserInfoResponse类型并具…
OpenID Connect发现端点的客户端库作为httpclient的扩展方法提供.该GetDiscoveryDocumentAsync方法返回一个DiscoveryResponse对象,该对象具有发现文档的各种元素的强类型和弱类型访问器. 在访问文档内容之前,应始终检查IsError和Error属性. 例: var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("https://de…
对于大多数情况,OAuth 2.0和OpenID Connect授权端点的GET请求需要具有许多查询字符串参数. 虽然您可以使用任何方法创建带参数的URL来创建正确的字符串,但RequestUrl类是完成此任务的简单帮助程序. 特别是,您可以使用CreateAuthorizeUrl扩展方法为授权端点创建URL - 它支持最常用的参数: /// <summary> /// Creates an authorize URL. /// </summary> /// <param n…
该RequestUrl类可用于构造URL发送到OpenID Connect EndSession endpoint. 该CreateEndSessionUrl扩展方法支持最常用的参数: /// <summary> /// Creates a end_session URL. /// </summary> /// <param name="request">The request.</param> /// <param name=&q…
JWT令牌使用Base64 URL编码进行序列化. IdentityModel包括Base64Url帮助编码/解码的类: var text = "hello"; var b64url = Base64Url.Encode(text); text = Base64Url.Decode(b64url); 注意 ASP.NET Core通过WebEncoders.Base64UrlEncode和WebEncoders.Base64UrlDecode提供内置支持. github地址…
JWT令牌使用所谓的Epoch或Unix时间来表示日期/时间. IdentityModel包含用于DateTime和DateTimeOffset转换到/来自Unix时间的扩展方法: var dt = DateTime.UtcNow; var unix = dt.ToEpochTime(); 注意 从.NET Framework 4.6和.NET Core 1.0开始,此功能通过DateTimeOffset.FromUnixTimeSeconds和DateTimeOffset.ToUnixTime…