C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

Edge版WebViewコントロールのcookieの保存場所 /たが (18/12/10(Mon) 10:44) #89613
Re[1]: Edge版WebViewコントロールのcookieの保存場所 /Hongliang (18/12/10(Mon) 11:22) #89614
│└ Re[2]: Edge版WebViewコントロールのcookieの保存場所 /たが (18/12/10(Mon) 18:09) #89621
│  ├ Re[3]: Edge版WebViewコントロールのcookieの保存場所 /たが (18/12/12(Wed) 20:24) #89646
│  └ Re[3]: Edge版WebViewコントロールのcookieの保存場所 /WebSurfer (18/12/13(Thu) 11:03) #89655
Re[1]: Edge版WebViewコントロールのcookieの保存場所 /PANG2 (18/12/12(Wed) 22:49) #89647
  └ Re[2]: Edge版WebViewコントロールのcookieの保存場所 /たが (18/12/13(Thu) 22:16) #89676
    └ Re[3]: Edge版WebViewコントロールのcookieの保存場所 /PANG2 (18/12/14(Fri) 11:23) #89679
      └ Re[4]: Edge版WebViewコントロールのcookieの保存場所 /PANG2 (18/12/14(Fri) 11:24) #89680
        └ Re[5]: Edge版WebViewコントロールのcookieの保存場所 /たが (18/12/15(Sat) 22:58) #89703
          └ Re[6]: Edge版WebViewコントロールのcookieの保存場所 /PANG2 (18/12/16(Sun) 12:45) #89704
            └ Re[7]: Edge版WebViewコントロールのcookieの保存場所 /たが (18/12/21(Fri) 22:08) #89768
              └ Re[8]: Edge版WebViewコントロールのcookieの保存場所 /たが (19/01/02(Wed) 13:09) #89811 解決済み


親記事 / ▼[ 89614 ] ▼[ 89647 ]
■89613 / 親階層)  Edge版WebViewコントロールのcookieの保存場所
□投稿者/ たが (1回)-(2018/12/10(Mon) 10:44:02)

分類:[C#] 

C#のWPF?でGUIアプリケーションを自分で使うために作っていたのですが、標準のWebBrowserコントロールはjavaScriptでエラーが出る等の問題があるようでしたので、新しいMicrosoft.Toolkit.Wpf.UI.Controls.WebViewコントロールを使ってみることにしました。

問題なく動いたのですが、気になる点がありまして、このWebViewコントロール内で何らかのサイトにログインすると、アプリケーションを再起動しても、まだログイン状態が続いているようで、私の素人知識では恐らくどこかにcookieが保存されているのではないかと考えたのですが、それがどこに保存されているのかがわかりません。このコントロールは表示にEdgeを使っているそうなのでEdge側で消せば消えるかと思ったのですが消えず、IEで消してみても消えず、カレントディレクトリ内にもそれらしきものはないように見え、どうやって消せばいいのかわかりません。

自分で作ったアプリケーションが知らない場所にファイルを作ってデータを保存しているのは、気持ちが悪いといいますか怖いといいますか。
出来ればこのcookieの消し方をご教示頂けないかと質問させていただきました。「通例であればここに保存されている」とか、「そのコントロールのこのメソッドで消すことが出来る」といった情報があれば教えていただきたいのです。


  Microsoft.Toolkit.Wpf.UI.Controls.WebViewコントロールにcookieを削除する機能があれば知りたい。
  上記が難しいのなら、アプリケーション終了時にファイルを直接削除したいのでその保存場所が知りたい。
  もしくは、実際はcookieなど保存していない、投稿者の勘違いであるという指摘。


ドキュメントも機械翻訳をかけて読んでみたのですが、そういった機能は見つけることが出来ませんでした。

もしおわかりになる方がいらっしゃいましたら、よろしくお願いいたします。
拙文失礼いたしました。
[ □ Tree ] 返信 編集キー/

▲[ 89613 ] / ▼[ 89621 ]
■89614 / 1階層)  Re[1]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ Hongliang (728回)-(2018/12/10(Mon) 11:22:46)
https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2013/11/27/webview-10/
ここの7番の記述が相当するでしょうか(申し訳ありませんが私自身は確認していません)。

WebViewを使うなら別にどうでもいい話ですが、
> 標準のWebBrowserコントロールはjavaScriptでエラーが出る等の問題があるようでしたので、
デフォルトではIE7相当として動作するようになっています。
起動時等にレジストリに所定の記述をすることでより新しいバージョンのIE相当として動かすことができます。
WebBrowser レジストリ
とかで検索すると詳細な記事が見つかるでしょう。
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89614 ] / ▼[ 89646 ] ▼[ 89655 ]
■89621 / 2階層)  Re[2]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ たが (3回)-(2018/12/10(Mon) 18:09:56)
回答ありがとうございます。教えていただいたページ拝見しました。
記事内のフォルダ名である<PackageName>とはVisualStudioのプロジェクトかソリューションの名前で良いのでしょうか?
確認した限り、それらしきフォルダはありませんでした。
フォルダの更新日で並び替え、hashのようなフォルダ名の新しいものもいくつか確認してみたのですがINetCookiesフォルダは空のものばかりでした。未だ解決出来ておりません。


レジストリ編集については考えたのですがレジストリは触りたくないと思っておりまして、アプリケーションのフォルダごとゴミ箱に放り込めばそれで終わりなアプリケーションが理想でして。おっしゃる通り起動終了毎に書き換え削除をすればいいのですが、せっかくなのでレジストリ操作が必要ない新しい物を使おうと思ったわけです。しばらくしても解決策が見つからなければこの方式にしようかとも考えています。ただこちらも調べていないので同じことになるかもしれませんが。
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89621 ] / 返信無し
■89646 / 3階層)  Re[3]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ たが (5回)-(2018/12/12(Wed) 20:24:53)
何度も申し訳ありません、自分なりに調べたのですがまだたどり着けません。
CCleanerで消えるようなので、CCleanerが消すファイルを表示されるリストからたどりましたがリストには表示されないようです。検出項目を変えてみたところ、Internet Explorerのクッキーの項目で検出削除されるようなのですが、
Internet Explorerのクッキー保存場所で調べて出てくるフォルダを開いてみてもそれらしいファイルがありません。
一体どこに保存されているのでしょうか。
そもそもクッキーはどのような形で保存されているのでしょうか。
ブリキの缶の中に脱酸剤と一緒に入ってるんでしょうか。
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89621 ] / 返信無し
■89655 / 3階層)  Re[3]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ WebSurfer (1704回)-(2018/12/13(Thu) 11:03:12)
No89621 (たが さん) に返信

> このWebViewコントロール内で何らかのサイトにログインすると、
> アプリケーションを再起動しても、まだログイン状態が続いているようで、

その「何らかのサイト」では認証チケットを認証クッキーに入れてやり取りしていて、最初にログイン
した時に送られてくるクッキーに epires 属性が付与されているのではないですか。以下のような感じ。

Set-Cookie: .ASPXAUTH=...; expires=Wed, 30-Nov-2011 13:21:29 GMT; path=/; HttpOnly

その場合、有効期間内であればブラウザはクッキーを HDD に保存します。(WebView は不明ですが)

Fiddler 等のキャプチャツールを使って要求・応答ヘッダの中身を確認してみてください。

> しばらくしても解決策が見つからなければこの方式にしようかとも考えています。
> ただこちらも調べていないので同じことになるかもしれませんが。

「この方式」というのは WebBrowser コントロールを利用して、レジストリ FEATURE_BROWSER_EMULATION
にアプリ名と IE のバージョンを指定することだと理解しています。

上に書いたようになっていれば(認証クッキーに epires 属性を付与)、インターネットオプションを開
いてクッキーを削除すれば「ログイン状態が続いている」という問題は解決できます。
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89613 ] / ▼[ 89676 ]
■89647 / 1階層)  Re[1]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ PANG2 (255回)-(2018/12/12(Wed) 22:49:16)
No89613 (たが さん) に返信
> このWebViewコントロール内で何らかのサイトにログインすると、アプリケーションを再起動しても、まだログイン状態が続いているようで、私の素人知識では恐らくどこかにcookieが保存されているのではないかと考えたのですが、それがどこに保存されているのかがわかりません。

メモリ上だけに保持されるcookieとファイルに保持されるcookieがあるのですが、

ちなみに、OSを再起動してもログインは保持されますか?

[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89647 ] / ▼[ 89679 ]
■89676 / 2階層)  Re[2]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ たが (6回)-(2018/12/13(Thu) 22:16:24)
回答ありがとうございます。ご指摘していただいた点を確認しました。


OS再起動での挙動については、再起動してもログイン状態が保持されているようです。

cookieのepires属性についてですが、
教えていただいたFiddlerを使用して確認してみました。
初めて使うソフトウェアだったのであまり自信はないのですが、恐らくこれだろうと思う項目を確認すると、epires 属性がついているようです。全く関係ないですがついでにhttp-onlyも付いてました。

通常のWebBrowserコントロールでログインし、インターネットオプションのcookie削除でログイン状態が解除されることを確認しました。完全に行き詰まったらこちらを使用しようと思います。その際はまた質問をすると思います。とりあえず今はMicrosoft.Toolkit.Wpf.UI.Controls.WebViewを使用したいと思っています。


やはりどこかに保存されていそうなのですがわかりません。
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89676 ] / ▼[ 89680 ]
■89679 / 3階層)  Re[3]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ PANG2 (256回)-(2018/12/14(Fri) 11:23:50)
No89676 (たが さん) に返信

> 通常のWebBrowserコントロールでログインし、インターネットオプションのcookie削除でログイン状態が解除されることを確認しました。

近いのが、Edgeの開発者ツール
http://www.wannko.net/windows10/ie/edgecokkie.html
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89679 ] / ▼[ 89703 ]
■89680 / 4階層)  Re[4]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ PANG2 (257回)-(2018/12/14(Fri) 11:24:03)
2018/12/14(Fri) 11:24:31 編集(投稿者)

削除
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89680 ] / ▼[ 89704 ]
■89703 / 5階層)  Re[5]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ たが (8回)-(2018/12/15(Sat) 22:58:04)
回答ありがとうございます。

自作アプリケーション側でログインしても、Edge側ではログイン状態にはならないので開発者ツールには表示されないようです。


現状まだ、Microsoft.Toolkit.Wpf.UI.Controls.WebViewコントロールのcookieを削除する方法、保存場所はわかっておりません。どなたかもし何か思うところがあればおっしゃっていただければと思います。
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89703 ] / ▼[ 89768 ]
■89704 / 6階層)  Re[6]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ PANG2 (258回)-(2018/12/16(Sun) 12:45:27)
Process Monitor
https://technet.microsoft.com/ja-jp/sysinternals/bb896645

でファイルアクセスを監視してファイル名を特定するとか
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89704 ] / ▼[ 89811 ]
■89768 / 7階層)  Re[7]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ たが (9回)-(2018/12/21(Fri) 22:08:07)
すいません。見つからなくてしばらく現実逃避してました。回答ありがとうございます。
教えていただいたProcess Monitorを使用してみたのですが、怪しいプロセスがWin32WebViewHost.exeとwwahost.exeでウェブページの表示に使った画像などのキャッシュが上記でご指摘のあったAppData\Local\Packages内のMicrosoft.Win32WebViewHostなんたらフォルダ内に存在していることを発見したのですが、同階層内に存在するINetCookiesフォルダ内にはそれらしきファイルがありませんでした。それ以外にアクセスしていたそれらしきフォルダも自分なりに確認したつもりなのですが、見つかりませんでした。自分が見落としているというのは確実なんだと思いますが、「これか、これじゃない。これか、これじゃない。これか、これじゃない」と続けていたら正直心が折れてしまいまして、もう気が向いたときにCCleanerで手動で消そうかなと思っています。

解決にしようか迷ったのですが、我儘だとは思いますがもう少しこのままにしておきます。もし情報をお持ちの方がいらっしゃるなら、書き込んでいただけると幸いです。1週間ほど待って何もなければ解決にしたいと思います。
[ 親 89613 / □ Tree ] 返信 編集キー/

▲[ 89768 ] / 返信無し
■89811 / 8階層)  Re[8]: Edge版WebViewコントロールのcookieの保存場所
□投稿者/ たが (10回)-(2019/01/02(Wed) 13:09:00)
あけましておめでとうございます。
解決済み
[ 親 89613 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -