Код: Выделить всё
public void ConfigureCodeFlowAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
var openIdConnectConfiguration = GetConfiguration();
var oidcOptions = new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
RedirectUri = redirectUri,
ResponseType = OpenIdConnectResponseType.Code,
Scope = OpenIdConnectScope.OpenIdProfile,
Configuration = openIdConnectConfiguration,
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = n =>
{
n.AuthenticationTicket.Identity.AddClaim(new Claim("refresh_token", n.ProtocolMessage.RefreshToken));
n.AuthenticationTicket.Identity.AddClaim(new Claim("access_token", n.ProtocolMessage.AccessToken));
n.AuthenticationTicket.Properties.AllowRefresh = true;
return Task.FromResult(0);
}
},
};
app.UseOpenIdConnectAuthentication(oidcOptions);
}
Насколько я понимаю, нам нужно переключиться нашему клиентскому приложению использовать поток неявного гранта (я знаю, что это менее безопасно и не рекомендуется, но в данном случае это кажется необходимым). После того, как я переключился, прежде чем разрабатывать собственную страницу входа, я хотел проверить, как она работает с размещенным пользовательским интерфейсом, но мне не удалось заставить ее работать.
В моей существующей конфигурации Я изменил ResponseType на OpenIdConnectResponseType.Token, затем OpenIdConnectResponseType.IdToken и OpenIdConnectResponseType.IdTokenToken. Кажется, ни один из них не работает правильно.
Я знаю, что токены в потоке неявного гранта передаются как фрагменты URL-адреса (например, https://my-page.com#id_token=... ). Похоже, мне придется анализировать эти токены вручную в Page.aspx.cs, но это похоже на беспорядочное решение, требующее большого количества ручной обработки. Я надеюсь, что есть более чистый и эффективный способ справиться с этой проблемой, сохранив при этом большую часть моей предыдущей конфигурации.
Вопросы:
- Как правильно настроить поток неявного гранта в моем приложении .NET
Framework Web Forms без ручного анализа токенов из
фрагмента URL-адреса? - Любой ресурсы, примеры или предложения по настройке неявного
потока грантов в этом сценарии?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -forms-app
Мобильная версия