簡體   English   中英

重新驗證Evernote應用C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM