2016-07-22 26 views
0

我第一次使用evernote验证应用程序时,我在页面上看到了evernote标志,在那里我可以授权我的应用程序。撤销访问后,我无法访问上传笔记或获取笔记本列表等功能。我该如何强制执行。过程再次发生? I.E在应用程序启动时再次显示evernote登录屏幕。这是目前我form.load代码我有():重新验证evernote应用程序C#

// 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 

任何帮助表示赞赏,谢谢!

回答

0

看着source,看起来您可能会将ENSession.SharedSession.IsAuthenticated设置为false,然后致电ENSession.SharedSession.AuthenticateToEvernote()。给一个镜头,看看它是否有效?

+0

ENSession.SharedSession.IsAuthenticated是只有你不能设置它。所以我不能用这个来解决这个问题。 – GregJ

+0

啊对不起,我不会说C#:( – akhaku

0

我没试过,不过貌似你可以打电话

ENSession.SharedSession.PerformPostAuthentication(); 

,然后检查

ENSession.SharedSession.IsAuthenticated. 

如果结果为假,则循环回叫

ENSession.SharedSession.AuthenticateToEvernote(); 
+0

没有这个工作也没有。我仍然得到了和以前一样的EDAM错误,但是谢谢! – GregJ

0

我知道这是一个古老的线索,但我正在寻找相关的东西时偶然发现了它。

看来Evernote使用ENSession或ENSession advanced并没有提供一种De-Authenticate的方法。然而,在解编他们的DLL后,我发现实际上有一个私有的Unauthenticate方法。因此,在理论上,你可以使用反射所以调用这个方法:

我相信Evernote的使这个私人的原因,所以我会小心调用它,但是这应该做的伎俩。我在我的一个测试应用程序中尝试了这一点,并且在调用Unauthenticate后,我验证了ENSession.SharedSession.IsAuthenticated为false,并调用ENSessionAdvanced.SharedSession.AuthenticateToEvernote()的确会启动一个Web浏览器,要求您登录到Evernote。