У нас есть собственный провайдер OpenID Connect. Мы хотим передать настраиваемый параметр запроса в запросе аутентификации с помощью промежуточного программного обеспечения Owin. И мы не можем найти способ, как это реализовать с помощью сборки Microsoft.Owin.Security.OpenIdConnect. Даже мы не можем найти, как добавить стандартный параметр запроса в запрос аутентификации (например, "параметр login_hint").
Например, у Google есть параметры "login_hint" и "hd" (https://developers.google.com/accounts/docs/OAuth2Login#sendauthrequest), и мы хотим иметь почти такие же параметры. Но мы даже не можем найти, как отправить эти параметры в Google с помощью Owin. Пробовал этот код:
var googleOptions = new GoogleOAuth2AuthenticationOptions()
{
ClientId = "...",
ClientSecret = "...",
};
app.UseGoogleAuthentication(googleOptions);
...
public ActionResult ExternalLogin(string provider)
{
var ctx = Request.GetOwinContext();
var properties = new AuthenticationProperties();
properties.Dictionary.Add("login_hint ", "[email protected]");
properties.Dictionary.Add("hd", "hd");
ctx.Authentication.Challenge(properties, provider);
return new HttpUnauthorizedResult();
}
Но URL-адрес запроса аутентификации будет сгенерирован без параметров «login_hint» и «hd».
Буду очень признателен за любую помощь в решении этой проблемы.
ctx.Authentication.Challenge
без пробела, но пробел никогда не анализируется, и он создает перенаправление с пробелом в нем, что, я думаю, не работает. - person LavaHot   schedule 20.09.2015