Идентификационный сервер и доступ к значениям состояния в MVC Controller? - PullRequest
1 голос
/ 17 марта 2019

Я устанавливаю значение пользовательского параметра состояния в 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-

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...