WebAuthenticationBroker重定向问题

时间:2019-03-19 07:59:14

标签: c# .net oauth

我正在UWP程序中获取OAuth AccessToken。但是似乎我的身份验证过程与其他人(Facebook或Google的OAuth等)不同。 Microsoft示例或在线教程不起作用。
基本上,我有一个Auth服务器(来自服务提供商),我的服务器和客户端。
该过程应为:
1.客户端进入身份验证服务器,输入用户名和密码
2.提交后,客户端将使用代码重定向到我的服务器
3.我的服务器将代码发布到Auth服务器,获取AccessToken并将其返回给客户端。
如果我尝试通过Chrome进行身份验证,则效果很好。

问题出在第二步。客户端应重定向到http://[MyServer]/callback?code=[code]。但是似乎WebAuthenticationBroker没有重定向。我的服务器未收到任何请求。而WebAuthenticationResult.ResponseData.ToString()是所谓的redirect_uri,类似http://[MyServer]/callback?code=[code]

我的代码是这样的:

        string startURL = string.Format("https://[AuthServer]/oauth/authorize?client_id={0}&response_type=code", Settings.ClientID);
        string endURL = "http://[MyServer]/callback";
        Uri startURI = new Uri(startURL);
        Uri endURI = new Uri(endURL);
        string result;
        try
        {
            var webAuthenticationResult =
                await WebAuthenticationBroker.AuthenticateAsync(
                WebAuthenticationOptions.None,
                startURI,
                endURI);

            switch (webAuthenticationResult.ResponseStatus)
            {
                case WebAuthenticationStatus.Success:
                    result = webAuthenticationResult.ResponseData.ToString();
                    break;
                case WebAuthenticationStatus.ErrorHttp:
                    result = webAuthenticationResult.ResponseErrorDetail.ToString();
                    break;
                default:
                    result = webAuthenticationResult.ResponseData.ToString();
                    break;
            }
        }
        catch (Exception ex)
        {
            result = ex.Message;
        }
        return result;

0 个答案:

没有答案