あなたが求めているが、あなたが技術的に注入し、認証フローを余分な値を取り出すことができ一つの方法は、OWINの通知経由で何をする公式の方法がありますかどうかわかりません。 Startup.Auth.csで
、ときに、セットアップあなたは以下を追加したいOpenIdConnectAuthenticationOptions:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
//...
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = OnRedirectToIdentityProvider,
MessageReceived = OnMessageReceived
},
});
そして、あなたのパラメータを注入するための線に沿って何かRedirectToIdentityProviderを使用します。
private Task OnRedirectToIdentityProvider(RedirectToIdentityProviderNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> notification)
{
var stateQueryString = notification.ProtocolMessage.State.Split('=');
var protectedState = stateQueryString[1];
var state = notification.Options.StateDataFormat.Unprotect(protectedState);
state.Dictionary.Add("mycustomparameter", "myvalue");
notification.ProtocolMessage.State = stateQueryString[0] + "=" + notification.Options.StateDataFormat.Protect(state);
return Task.FromResult(0);
}
を
次に、MessageReceivedを使用してメッセージを抽出します。
private Task OnMessageReceived(MessageReceivedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> notification)
{
string mycustomparameter;
var protectedState = notification.ProtocolMessage.State.Split('=')[1];
var state = notification.Options.StateDataFormat.Unprotect(protectedState);
state.Dictionary.TryGetValue("mycustomparameter", out mycustomparameter);
return Task.FromResult(0);
}
あなたは明らかにこれを改善する必要があるでしょうが、これによりより良い全体的なアプローチができなくなります。
ここで尋ねられました:https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/14758953-support-query-parameters-in-reply-urls-with-azure –