精确的在线授权

时间:2017-02-14 14:51:13

标签: azure exact-online

我在Exact online上注册了两个应用程序(app target为'Test'),其中一个应用程序的重定向url是azure托管站点,其他应用程序是本地托管站点。

具有本地托管网站的应用程序正确授权并成功返回令牌。 但是,它无法使用azure托管网站授权应用程序。 OAuth2 ProtocolVersion是V20。

有人可以帮忙吗? 我们是否需要在azure portal上进行一些设置,以便为第三方软件进行Oauth2身份验证,例如在这种情况下在线确认,以获得正确的请求?

提前致谢。

代码示例:

区域授权请求

     private static readonly ExactOnlineOAuthClient OAuthClient = new ExactOnlineOAuthClient();
     private Boolean AuthorizeClient()
    {
        OAuthClient.Authorize(returnUri);
        return (OAuthClient.Authorization != null);
    }
    #endregion

    #region ExactOnlineOAuthClient Class
    public ExactOnlineOAuthClient()
        : base(CreateAuthorizationServerDescription(), ClientIdentifier(), ClientSecret())
    {
        ClientCredentialApplicator = ClientCredentialApplicator.PostParameter(ClientSecret());
    }


     private static AuthorizationServerDescription CreateAuthorizationServerDescription()
    {
        var baseUri = "https://start.exactonline.nl";
        var uri = new Uri(baseUri.EndsWith("/") ? baseUri : baseUri + "/");
        var serverDescription = new AuthorizationServerDescription
        {
            AuthorizationEndpoint = new Uri(uri, "api/oauth2/auth"),
            TokenEndpoint = new Uri(uri, "api/oauth2/token")
        };

        return serverDescription;
    }
    private static string ClientIdentifier()
    {
        return "ClientIdentifier"; //valid client id
    }

    private static string ClientSecret()
    {
        return "ClientSecret"; //valid client secret
    }

    private void Authorize(Uri returnUri)
    {
        try
        {
            if (Authorization == null)
            {
                Authorization = ProcessUserAuthorization();
                if (Authorization == null)
                {
                    // Kick off authorization request
                    RequestUserAuthorization(null, returnUri);
                }
            }
            else
            {
                if (AccessTokenHasToBeRefreshed())
                {
                    RefreshAuthorization(Authorization);
                }
            }
        }
        catch(Exception ex)
        {

        }
    }
    #endregion

0 个答案:

没有答案