[英]Re-authenticate evernote app C#
我第一次使用Evernote驗證應用程序時,會遇到Evernote登錄頁面,我可以在其中驗證我的應用程序。 撤消訪問權限后,我無法訪問上載筆記或獲取筆記本列表等功能。 我該如何強制重新認證。 過程再次發生? IE在應用啟動時再次顯示Evernote登錄屏幕。 當前這是我在form.load()中擁有的代碼:
// Be sure to put your own consumer key and consumer secret here.
ENSession.SetSharedSessionConsumerKey("your key", "your secret");
if (ENSession.SharedSession.IsAuthenticated == false)
{
ENSession.SharedSession.AuthenticateToEvernote();
}
運行此命令時,我沒有收到任何錯誤,但是當我嘗試上傳筆記時,出現了以下錯誤:
Evernote.EDAM.Error.EDAMNotFoundException
任何幫助表示贊賞,謝謝!
查看源代碼 ,您似乎可以將ENSession.SharedSession.IsAuthenticated
設置為false,然后調用ENSession.SharedSession.AuthenticateToEvernote()
。 試一試,看看是否有效?
我沒有嘗試過,但是看起來您可以打電話
ENSession.SharedSession.PerformPostAuthentication();
然后檢查
ENSession.SharedSession.IsAuthenticated.
如果評估為假,則循環回調用
ENSession.SharedSession.AuthenticateToEvernote();
我知道這是一個舊線程,但是在尋找相關內容時,我偶然發現了它。
似乎使用ENSession或ENSession Advanced的Evernote SDK無法提供一種取消身份驗證的方法。 但是,在反編譯他們的dll之后,我注意到實際上存在一個私有的Unauthenticate方法。 因此,從理論上講,您可以使用反射,因此請調用此方法:
var mi = typeof(ENSession).GetMethod("Unauthenticate", BindingFlags.NonPublic | BindingFlags.Instance);
mi.Invoke(ENSession.SharedSession, null);
我確信Evernote之所以將其設為私有是有原因的,因此我會謹慎地調用它,但這應該可以解決問題。 我在一個測試應用程序之一中對此進行了嘗試,並在調用Unauthenticate之后驗證了ENSession.SharedSession.IsAuthenticated為false,然后調用ENSessionAdvanced.SharedSession.AuthenticateToEvernote()確實啟動了一個Web瀏覽器,要求您登錄Evernote。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.