【发布时间】:2019-07-03 18:58:38
【问题描述】:
感谢您阅读我的问题。 我正在 Stex.com 上开发“硬币交换器”桌面应用程序。 我可以通过邮递员获取 access_token 和 refresh_token。 这是细节。 https://help.stex.com/en/articles/2740368-how-to-connect-to-the-stex-api-v3-using-postman
现在我想在没有邮递员的情况下获取 access_token 和 refresh_token。所以我将 CefSharp Nuget Package 添加到我的软件中并手动登录。 轮到获取access_token和refresh_token了。 我以为我可以通过 cookie 获得它们,但我失败了。 这就是我所做的。
private void btnGetAuth_Click(object sender, EventArgs e)
{
CookieVisitor _cookieVisitor = new CookieVisitor();
var mgr = browser.GetCookieManager();
mgr.VisitAllCookies(_cookieVisitor);
}
..............................
public class CookieVisitor : ICookieVisitor
{
public CookieVisitor()
{
IsReady = true;
}
public bool Visit(Cookie cookie, int count, int total, ref bool deleteCookie)
{
lock (this)
{
if (_cookies.ContainsKey(cookie.Name))
{
_cookies[cookie.Name] = new System.Net.Cookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain);
_cookies[cookie.Name].Name = cookie.Name;
_cookies[cookie.Name].Value = cookie.Value;
_cookies[cookie.Name].Path = cookie.Path;
_cookies[cookie.Name].Domain = cookie.Domain;
}
else _cookies.Add(cookie.Name, new System.Net.Cookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain));
//fire when complete
IsReady = count == total - 1; //
}
return true;
}
public void Dispose()
{
Constants._cookies = _cookies;
}
Dictionary<string, System.Net.Cookie> _cookies = new Dictionary<string, System.Net.Cookie>();
public Dictionary<string, System.Net.Cookie> AllCookies { get { return _cookies; } }
public bool IsReady { get; set; }
public System.Net.Cookie this[string name]
{
get { return _cookies.ContainsKey(name) ? _cookies[name] : null; }
}
~CookieVisitor()
{
}
}
我检查了 _cookies 变量,但没有 access_token、refresh_token。
我想从 CefSharp 或任何其他 WebBrowser 获取 OAuth2 令牌。 请帮帮我。
【问题讨论】:
-
我认为您应该遵循来自Microsoft Authentication flow 的任何身份验证流程,您想要 C# 示例吗?
-
我真的很想要,因为我花了3天时间才解决这个问题。
-
好的,我现在正在尝试使用示例 Graph Request 示例来回答 C# 身份验证示例。
-
看看,你可以试试,希望对你有帮助。如果您有任何疑问,请随时分享。谢谢
-
我认为您需要检查 CefSharp 的 javascript 代码。我不知道 Stex.com,但如果你可以登录 CefSharp,就会有一个会话。您需要通过 javascript 代码获取会话。希望你是幸运的。
标签: c#