Я устанавливаю значение пользовательского параметра состояния в OnRedirectToIdentityProvider и могу получить к нему доступ в OnMessageReceived .Это пользовательское значение состояния может быть доступно в контроллере MVC, но оно имеет формат зашифрованный .Как я могу получить доступ к этому в расшифрованном виде в контроллере.Ниже мой код:
private static 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("stateUTName", "chandigarh");
notification.ProtocolMessage.State = stateQueryString[0] + "=" + notification.Options.StateDataFormat.Protect(state);
return Task.FromResult(0);
}
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("stateUTName", out mycustomparameter);
return Task.FromResult(0);
}
Значение, полученное в контроллере, выглядит так: OpenIdConnect.AuthenticationProperties=CfijlEY2jd9Jv4J7i5qy0K1ZZ5x2FR5ZraXo2dDVWl-a2RppU46kHpnoZe2mLJ2qpXFlpMRnu1nxKPYXepR4KwnhxAll88xSZmK41BsfIVkmCa34dfHK_RdBwRZW3cwHqIsD1N4Cqmr655xjK-gSr53zetwZeUq0UX-nBTpz1TZTgc64-8JOLiXPEVlvLM6KYZNQYGBkoCNCNCV_GEbgx0U1QuGPuHxglJD3SGbKF9bo_OjhI6L-U-hPbalY0Fa-