官方认证正在等待连接

时间:2018-06-25 09:10:44

标签: c#

为什么我已经编写了一个控制台应用程序,并且想连接到身份服务器。我想使用NamedPipeServerStream获得结果。但是,它总是尝试连接到服务器。 这是我的代码:

var options = new OidcClientOptions
        {
            Authority = authority,
            ClientId = clientId,
            ClientSecret = clientSecret,
            Scope = scope,
            RedirectUri = redirectUrl,
            ResponseMode = OidcClientOptions.AuthorizeResponseMode.Redirect

        };
        _oidcClient = new OidcClient(options);
        var state = await _oidcClient.PrepareLoginAsync();
        var callbackManager = new CallbackManager(state.State);
        Process.Start(state.StartUrl);
        var response = await callbackManager.RunServer();
        var result = await _oidcClient.ProcessResponseAsync(response, state);

这是我的回叫经理

public async Task<string> RunServer(CancellationToken? token = null)
    {
        token = CancellationToken.None;

        using (var server = new NamedPipeServerStream(_name, PipeDirection.In))
        {
            //here it spos and waits for the Connection
            await server.WaitForConnectionAsync(token.Value);

            using (var sr = new StreamReader(server))
            {
                var msg = await sr.ReadToEndAsync();
                return msg;
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

解决方案是添加一个Flow: 流= OidcClientOptions.AuthenticationFlow.AuthorizationCode 现在可以了