从C#WinForms应用程序中的数据库加载DropNet用户令牌和密码

从C#WinForms应用程序中的数据库加载DropNet用户令牌和密码,c#,dropbox-api,dropnet,C#,Dropbox Api,Dropnet,我想知道是否有人能帮忙。我正在使用DropNet客户端,我已成功使用Dropbox授权应用程序,并已将用户令牌和密码存储在SQL数据库中,以便我可以按如下方式再次访问它们: public void Authenticated(Action success, Action<Exception> failure) { Client.GetAccessTokenAsync((accessToken) => { UserTok

我想知道是否有人能帮忙。我正在使用DropNet客户端,我已成功使用Dropbox授权应用程序,并已将用户令牌和密码存储在SQL数据库中,以便我可以按如下方式再次访问它们:

 public void Authenticated(Action success, Action<Exception> failure)
 {
        Client.GetAccessTokenAsync((accessToken) =>
        {
            UserToken = accessToken.Token;
            UserSecret = accessToken.Secret;

            UserAccountManagerBLL accBll = new UserAccountManagerBLL();
            accBll.RememberMe(UserToken, UserSecret, Email);

            if (success != null) success();
        },
        (error) =>
        {
            if (failure != null) failure(error);
        });
此方法用于获取令牌

public string GetToken(string eMail)
{
        using (cxn = new SqlConnection(this.ConnectionString))
        {
            using (cmd = new SqlCommand("spGetDetails", cxn))
            {
                cmd.CommandType = CommandType.StoredProcedure;

                cxn.Open();
                SqlDataReader dReader = cmd.ExecuteReader();

                while (dReader.Read())
                {
                    Utoken = dReader["UserToken"].ToString();
                    break;
                }
                dReader.Close();
                cxn.Close();
            }
        }

        return Utoken;
}
秘密也一样

一旦有了它们,我就有两个属性在页面加载时保存这些值:

    public string UserToken { get; set; }
    public string UserSecret { get; set; }
问题是我不知道如何让DropNet识别我从数据库加载的这些值,我可以开始拖放文件

更新:这里是
\u Client
获取DropNet用户令牌和密码的地方:

private DropNetClient _Client;
    public DropNetClient Client
    {
        get
        {
            if (_Client == null)
            {
                _Client = new DropNetClient(appKey, appSecret);

                if (IsAuthenticated)
                {
                    _Client.UserLogin = new UserLogin
                    {
                        Token = UserToken,
                        Secret = UserSecret
                    };
                }

                _Client.UseSandbox = true;
            }
            return _Client;
        }
    }

所以我就快到了。事实证明,我所要做的就是创建一个新的DropNet客户端实例,而不是在页面加载事件中创建一个新的UserLogin实例

        UserAccountManagerBLL accMan = new UserAccountManagerBLL();

        UserToken = accMan.GetToken(Email);
        UserSecret = accMan.GetSecret(Email);

        _Client = new DropNetClient(appKey, appSecret, UserToken, UserSecret);

您只需在
DropNetClient
实例上设置
UserLogin
对象。当你这样做的时候,你看到了什么?嘿,达米安,当我加载表单并尝试通过拖放上传文件时,它就失败了。我想知道我应该说_Client.userLogin=newuserlogin{token=UserToken,secret=UserToken};在表单加载时?您能看到API响应是什么吗?也许可以使用类似Fiddler的东西来捕获web流量。另外,您是否确定代码在正确的时间运行?也就是说,如果落入
if(IsAuthenticated)
块,并且
UserToken
UserSecret
设置正确,则将检查并尝试!
        UserAccountManagerBLL accMan = new UserAccountManagerBLL();

        UserToken = accMan.GetToken(Email);
        UserSecret = accMan.GetSecret(Email);

        _Client = new DropNetClient(appKey, appSecret, UserToken, UserSecret);