Skip to content

最简单的IdentityServer实现——Client

L edited this page Dec 4, 2017 · 5 revisions

客户端控制台演示请求访问令牌,然后使用此令牌访问API

1.新建项目并添加引用

新建一个.net core的控制台程序IdentityServer.EasyDemo.Client 1
引用IdentityModel
2

2.调用方法

在Program.cs中,写上调用的方法,如下所示:

//从元数据中发现终结点,查找IdentityServer(5000端口)
var disco = await DiscoveryClient.GetAsync("http://localhost:5000");
if (disco.IsError)
{
    Console.WriteLine(disco.Error);
    return;
}

//向IdentityServer请求令牌
var tokenClient = new TokenClient(disco.TokenEndpoint, "client", "secret");
var tokenResponse = await tokenClient.RequestClientCredentialsAsync("api1");

if (tokenResponse.IsError)
{
    Console.WriteLine(tokenResponse.Error);
    return;
}

Console.WriteLine(tokenResponse.Json);

//访问Api
var client = new HttpClient();
//把令牌添加进请求
client.SetBearerToken(tokenResponse.AccessToken);

var response = await client.GetAsync("http://localhost:5001/identity");
if (!response.IsSuccessStatusCode)
{
    Console.WriteLine(response.StatusCode);
}
else
{
    var content = await response.Content.ReadAsStringAsync();
    Console.WriteLine(JArray.Parse(content));
}

3.测试

启动IdentityServer项目与Api项目,调试Client项目
3
查看结果
4

Clone this wiki locally