我在我的项目asp.net(框架点网)中使用IdentityModel.OidcClient,版本= 2.9.0.0创建一个身份验证请求(HTTPS GET请求),所需的参数为:client_id,response_type,scope,redirect_uri。
经过不同的测试后,此方法有效:
OidcClientOptions _options = new OidcClientOptions
{
Authority = _authority,
Flow = OidcClientOptions.AuthenticationFlow.AuthorizationCode,
ClientId = _clientId,
ResponseMode = OidcClientOptions.AuthorizeResponseMode.Redirect,
Scope = "openid profile email service:EPICURA_LOGIN phone address",
RedirectUri = "https://localhost:44302/",
FilterClaims = false,
ProviderInformation = new ProviderInformation
{
IssuerName = _authority,
AuthorizeEndpoint = _authorizationEndpoint,
TokenEndpoint = _tokenEndpoint,
KeySet = new IdentityModel.Jwk.JsonWebKeySet("{\"alg\":\"RS256\"}"),
UserInfoEndpoint = "https://e2emerchant.itsme.be/oidc/userinfo"
}
};
OidcClientOptions _options = EpiAuthorize.GenerateRequestAuthentication();
OidcClient _client = new OidcClient(_options);
var _state = await _client.PrepareLoginAsync();
string jsonStr = JsonConvert.SerializeObject(_client, Formatting.Indented);
这项工作,但我没有要在OidcClientOptions中添加的Claims参数, 112/5000 我需要通过Claim参数获得其他信息:“标签:sixdots.be,2016-06:claim_eid”
是否可以通过RestClient发出“获取”请求?
我尝试过但没有成功:
*var client = new RestClient("https://e2emerchant.itsme.be/");
var request = new RestRequest("oidc/authorization", Method.GET);
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("response_type", "code");
request.AddParameter("scope", "openid profile email service: EPICURA_LOGIN");
request.AddParameter("client_id", _clientId);
request.AddParameter("redirect_uri", "https://localhost:44302/");
request.AddBody("");
// execute the request
IRestResponse response = client.Execute(request);
var content = response.Content;
您有一个解决方案可以为我提供服务,我坚持了1周,我看到了很多有关网络核心的示例,但我不使用它。
是否可以在“ OidcClientOptions”中添加Claims参数,或者可以通过“ OidcClientOptions”与上述源代码做相同的事情,而可以使用RestClient。
预先感谢