IdentServer2 使用不同方式实现(swagger+client+html+postman)
IdentServer登陆校验




Swagger 校验登陆方式
1. Implicit



2. Password


C#使用IdentServer例子

using IdentityModel.Client;
using System;
using System.Net.Http;
namespace TPL.Client
{
class Program
{
static void Main(string[] args)
{
ClientModel();
Console.WriteLine();
PassWordModel();
Console.ReadKey();
}
/// <summary>
/// 客户端模式
/// </summary>
static void ClientModel()
{
Console.WriteLine("=== ClientModel === ");
var client = new HttpClient();
var response_token = client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest
{
Address = "http://localhost:5100/connect/token",
ClientId = "api_client",
ClientSecret = "secret",
Scope = "api"
}).Result;
Console.WriteLine("=============================Token==============================");
Console.WriteLine(response_token.AccessToken ?? response_token.Error);
Console.WriteLine("=============================WebApi==============================");
// 调用API
client.SetBearerToken(response_token.AccessToken);
var responses_api1 = client.GetAsync("http://localhost:5001/api/Main/HelloString").Result;
var content1 = responses_api1.Content.ReadAsStringAsync().Result;
Console.WriteLine(content1);
//var responses_api2 = client.GetAsync("http://localhost:5001/api/Main/HelloString").Result;
//var content2 = responses_api2.Content.ReadAsStringAsync().Result;
//Console.WriteLine(content2);
}
static void PassWordModel()
{
Console.WriteLine("=== PassWordModel === ");
var client = new HttpClient();
var response = client.RequestPasswordTokenAsync(new PasswordTokenRequest
{
Address = "http://localhost:5100/connect/token",
ClientId = "apiClientPassword",
ClientSecret = "apiSecret",
Scope = "api",
UserName = "system",
Password = "system"
}).Result;
Console.WriteLine("=============================Token==============================");
Console.WriteLine(response.AccessToken ?? response.Error);
Console.WriteLine("=============================WebApi==============================");
// 调用API
client.SetBearerToken(response.AccessToken);
var responses = client.GetAsync("http://localhost:5001/api/Main/HelloString").Result;
if (response.IsError)
{
Console.WriteLine(response.HttpStatusCode);
}
else
{
//Console.WriteLine("=============================服务返回值==============================");
var content = responses.Content.ReadAsStringAsync().Result;
Console.WriteLine(content);
}
}
}
}
Html使用IdentServer例子


<html>
<head>
<title>identsever_test</title>
</head>
<body>
<div id="newplay"></div>
<script src="jquery-1.10.2.min.js"></script>
<script type="text/javascript">
// localStorage.setItem('uid','10001');
// var uid = localStorage.getItem('uid');
// localStorage.removeItem('uid');
// localStorage.clear();
// 遍历
// localStorage.uid = 1;
// localStorage.sex='nan';
// localStorage.age = 23;
// for ( var i = 0, len = localStorage.length; i < len; ++i ) {
// console.log( localStorage.key( i ) +':' + localStorage.getItem(localStorage.key( i )) );
//}
var token = "http://localhost:5100/connect/token";
var siteinfo = "http://localhost:5001/api/";
identity_init();
function identity_init() {
var data = {
username: "system",
password: "system",
grant_type: 'password',
client_id: 'apiClientPassword',
client_secret: 'apiSecret'
};
$.ajax({
url: token,
method: 'POST',
data: data,
header: { "content-type": "application/x-www-form-urlencoded" },
success(res) {
console.log("get token success:");
console.log(res);
var access_token = res.access_token;
localStorage.setItem('access_token', access_token);
},
fail(res) {
console.log(res);
},
complete(res) {
console.log(res);
}
})
var access_token = localStorage.getItem('access_token');
$.ajax({
url: siteinfo + "Main/HelloString",
method: 'GET',
beforeSend: function (request) {
request.setRequestHeader("Authorization", "Bearer " + access_token);
},
success(res) {
console.log("get webapi success:");
console.log(res);
},
fail(res) {
console.log(res)
},
complete(res) {
console.log(res);
}
})
}
</script>
</body>
PostMan使用IdentServer例子


代码结构
