Cod*_*d29 5 asp.net-mvc identityserver3 identityserver4 identitymodel
尝试访问发现客户端以访问其他端点并遵循 http://docs.identityserver.io/en/aspnetcore1/endpoints/discovery.html
在 .Net 7.5 MVC 应用程序中安装了 IdentityModel nuget 包。但无法找到DiscoveryClient
.
var discoveryClient = new DiscoveryClient("https://demo.identityserver.io");
var doc = await discoveryClient.GetAsync();
Run Code Online (Sandbox Code Playgroud)
有什么变化Identitymodel
了IdentityServer4
此外,无法找到“Tokenclient”的参数。
能够弄清楚,IdentityModel 的变化,它的所有扩展HttpClient
。
https://identitymodel.readthedocs.io/en/latest/client/discovery.html
var client = new HttpClient();
var disco = await client.GetDiscoveryDocumentAsync("https://demo.identityserver.io");
Run Code Online (Sandbox Code Playgroud)
是的,你是对的。IdentityModel NuGet 包中有很多更改。
下面的代码将帮助您:
HttpClient httpClient = new HttpClient();
//Below code will give you discovery document response previously we were creating using DiscoveryClient()
// They have created `.GetDiscoveryDocumentAsync()` extension method to get discovery document.
DiscoveryDocumentResponse discoveryDocument = await httpClient.GetDiscoveryDocumentAsync();
// To create a token you can use one of the following methods, which totally depends upon which grant type you are using for token generation.
Task<TokenResponse> RequestAuthorizationCodeTokenAsync(AuthorizationCodeTokenRequest)
Task<TokenResponse> RequestClientCredentialsTokenAsync(ClientCredentialsTokenRequest)
Task<TokenResponse> RequestDeviceTokenAsync(DeviceTokenRequest)
Task<TokenResponse> RequestPasswordTokenAsync(PasswordTokenRequest)
Task<TokenResponse> RequestRefreshTokenAsync(RefreshTokenRequest)
Task<TokenResponse> RequestTokenAsync(TokenRequest)
Run Code Online (Sandbox Code Playgroud)
例如,如果要为密码授予类型创建令牌,请使用以下代码:
PasswordTokenRequest passwordTokenRequest = new PasswordTokenRequest()
{
Address = discoveryDocument.TokenEndpoint,
ClientId = ClientName,
ClientSecret = ClientSecret,
GrantType = GrantTypes.ResourceOwnerPassword,
Scope = scope,
UserName = userName,
Password = password
};
httpClient.RequestPasswordTokenAsync(passwordTokenRequest);
Run Code Online (Sandbox Code Playgroud)
我希望这能帮到您!
归档时间: |
|
查看次数: |
4320 次 |
最近记录: |