2016-12-04 18 views
0

デスクトップアプリケーション(WebBrowserコントロールを使用してC#)でOAuthを使用してAsanaにログインして作成したクッキーがあります。これはC:\ Users \ elega \ AppData \ Local \ Microsoft \ Windows \ INetCacheに格納され、 "cookie:[email protected]/"という名前です。Win32 InternetSetCookie関数でクッキーを削除できません

OAuthページに移動すると、AsanaのAPIが自動的に新しいトークンを私に渡さないように削除します。そのクッキーを手動で削除すると、ユーザーは再度ログインする必要があります。これが私が望むものです。

私の研究から、コードで直接クッキーを削除することはできないと思われますが、期限切れになる可能性があります。だから私はInternetSetCookie関数を使用していますが、ファイル内の最後に変更されたデータスタンプと、OAuthがまだ私にトークンを与えていると判断して、クッキーファイルを変更しているようには見えません。私はクッキー名が何であるかについて広範な説明を見ていないが、私は以下のすべてのバリエーションを試してみたが、何も動作していない。私は間違って何をしていますか?

class DeleteCookie 
{ 
    [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] 
    static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData); 

    private void Delete() 
    { 
     bool returnVal; 

     returnVal = InternetSetCookie("https://app.asana.com", "cookie:[email protected]/", "expires = Sat,01-Jan-1970 00:00:00 GMT"); 
     returnVal = InternetSetCookie("https://app.asana.com", "[email protected]/", "expires = Sat,01-Jan-1970 00:00:00 GMT"); 
     returnVal = InternetSetCookie("https://app.asana.com", "cookie:[email protected]", "expires = Sat,01-Jan-1970 00:00:00 GMT"); 
     returnVal = InternetSetCookie("https://app.asana.com", "[email protected]", "expires = Sat,01-Jan-1970 00:00:00 GMT"); 
     returnVal = InternetSetCookie("https://app.asana.com", null, "expires = Sat,01-Jan-1970 00:00:00 GMT"); 
    } 
}  

答えて

0

File.Deleteメソッドを使用して指定した特定のディレクトリからCookieを削除するだけです。

+0

これは推奨される方法ではありません(http://stackoverflow.com/questions/12181451/winforms-webbrowser-how-to-delete-cookiesを参照)。また、私はそれを試みて、ファイルが削除されず、エラーは発生しません。別のオプションは、DeleteUrlCacheEntryメソッドを使用することですが、私はまだそのアプローチを使用する方法を理解していません。 –

0

@Eric Legault、私はAsanaの開発者支持者です。私はあなたのために何がうまくいくのか見てみようとしました。

まず、この動作に関するいくつかのリクエストがありました。具体的には、このリダイレクトフローに機能を追加するという提案がありました。ここでは、Asanaへの統合をボットアカウントでログインさせるという目的で、統合によってユーザーピッカーが表示されることがありますこの日のAsanaアカウントもログインしています。これはあなたが達成したいと思っているものですか?

いずれにしても、私はあなたにこの作業を試みるためのいくつかの指針を与えることができますが、これはログアウトするための非常にハッキーな方法です(ただし、明らかにこれを最初から簡単にしていないという私たちの責任)、パブリックチャンネルに投稿するのではなく、あなたが[email protected]に電子メールを送ることを好むだろう。ここでのリスクは、正式にサポートされていない方法でログアウトを管理する方法についての情報を投稿することです。クッキーのスキーマを変更すると、ハッキングに依存して統合が行われる可能性があり、それは私たちにとって悲しいことです。ご興味がある場合は、直接お気軽にお問い合わせください!

+0

Mattさん、ありがとうございました。他にも関連する問題があります –

関連する問題