HttpWebRequestとHttpWebResponseクラスを使って、ユーザーログインが必要なページからHTMLを受信したいのですが、
ブラウザで手動でログインした時に受け取ったTemporary Internet FilesフォルダにあるCookieを使いたいのですが、
この方法をお教え頂けないでしょうか。
HttpWebRequestでIDやPASSを送信してCookieを受け取ることは出来たのですが、
その方法だとブラウザのログイン状態が無効になってしまうので、
すでにあるCookieを使いたいです。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
> Temporary Internet FilesフォルダにあるCookie
というよりは %HOMEPATH%\Cookies にあるのではないでしょうか?
System.Environment.GetFolderPath(Environment.SpecialFolder.Cookies)
# ファイル名は *[1].txt とか *[2].txt とか微妙なのですが。
しかし、このファイル自体を探して読み込むのはセキュリティ的にどうなのかという疑問があります。
(IE などは管理データベースがあるので良いのですが)
それ用の API を用いるか、自前のソフトでログイン情報を送信してそこで得られた Cookie を
ファイルに保存しておくのが筋なんだと思われますが?
これらの URL に記載された例をお読みになれば自力で作れませんか?
設定され、 WinInet API を使用している URL については、 Cookie を取得する方法方法には
http://support.microsoft.com/kb/196062/ja
※ マイクロソフトの自動翻訳そのままなので気にしないでください。
Managing Cookies (Windows)
http://msdn2.microsoft.com/en-us/library/aa38532 …
上記の例でも下記に記述した移植例でも使ってませんが、API でエラー(API の戻り値が失敗の値)と
なった時は必要に応じて GetLastError 調べたほうがよろしいかと思います。
' No more data is available.
Const ERROR_NO_MORE_ITEMS = 259
' The data area passed to a system call is too small.
Const ERROR_INSUFFICIENT_BUFFER = 122
# この例ではバッファを多く取ったのでバッファが足りないというエラーは出ないとは思いますが。
-------------------------------------------
Imports System.Text
Private Declare Function InternetSetCookie Lib "wininet.dll" _
Alias "InternetSetCookieA" (ByVal lpszUrlName As String, _
ByVal lpszCookieName As String, ByVal lpszCookieData As String) As Boolean
Private Declare Function InternetGetCookie Lib "wininet.dll" _
Alias "InternetGetCookieA" (ByVal lpszUrlName As String, _
ByVal lpszCookieName As String, ByVal lpszCookieData As StringBuilder, _
ByRef lpdwSize As Long) As Boolean
Private Function getCookie(ByVal szUrlName As String) As String
Dim sCookieVal As New StringBuilder(2048)
Dim lpLength As Long
Dim bRet As Boolean
lpLength = sCookieVal.Capacity
bRet = InternetGetCookie(szUrlName, _
vbNull, sCookieVal, lpLength)
If bRet = True Then Return sCookieVal.ToString
Return ""
End Function
Private Function setCookie(ByVal szUrlName As String, ByVal szCookieName As String, _
ByVal szCookieData As String) As Boolean
Return InternetSetCookie(szUrlName, _
szCookieName, szCookieData)
End Function
----------------------------------------------
動作確認例
setCookie("http://xxxx.xxx/", "Test", "TestCookie; expires = Sat,31-Dec-2011 00:00:00 GMT")
MsgBox(getCookie("http://xxxx.xxx/"))
MsgBox(getCookie("http://update.microsoft.com/"))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ブラウザ) 最近、いろいろなブラウザでログインができません。 2 2022/03/29 00:04
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
- その他(ソフトウェア) ロイロノート(アプリ版)のログインができません。 2 2022/09/04 21:07
- Chrome(クローム) Cookieを削除 他サイトでの自動ログインなどの設定も削除されますか パソコン クロームです 1 2022/09/10 21:47
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- 格安スマホ・SIMフリースマホ SMS認証用の電話番号が欲しい 6 2022/06/12 18:21
- Gmail 過去のGoogleアカウントのログイン 1 2022/08/09 20:15
- Chrome(クローム) 【Google】「同期は有効です」と表示されているがブックマークが同期されていない 2 2022/11/17 13:32
- マウス・キーボード Logicool optionsについての質問です。 私が使っているレシーバーはUnifyingです 1 2022/09/22 23:39
- タブレット 10年近く前のタブレット ログイン聞かれ動きません 3 2023/08/25 20:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「パス名が無効です」の発生原因
-
RAR圧縮ファイル(分割)の順番が...
-
PowerShellを使って関連付けら...
-
DisplayAlertsブロパティで ”実...
-
gccを行ってもexeファイルが生...
-
メニューのショートカットキー
-
Microsoft Photo Editorのエラ...
-
DOCUMENT行の書き出しについて-...
-
システムのシャットダウンは既...
-
Adobeのプレミアプロの書き出し...
-
Excel VBAのApplication.Execut...
-
VBA ExecuteExcel4Macro 型が一...
-
兵庫県教員採用試験の願書記入...
-
VBでファイルが開かれているか...
-
構造体をランダムファイルに書...
-
外付けHDDが調子悪い 故障の前...
-
「複数の選択範囲に対して実行...
-
ISOファイルとMDSファイル
-
生鮮MDシステムについて。
-
差し込み印刷の元データファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gccを行ってもexeファイルが生...
-
VBでファイルが開かれているか...
-
「パス名が無効です」の発生原因
-
batファイルでレジストリキーの...
-
VBから参照できないCのDLLを使...
-
FTPの送信結果を検知したい
-
access テキストボックスの値取得
-
PowerShellを使って関連付けら...
-
Returnに対するGoSubがありません
-
アクセスのクエリでコンパイル...
-
OUTLOOK VBA 指定フォルダ内の...
-
Adobeのプレミアプロの書き出し...
-
EXCELのVBAでWORDが開いてある...
-
NAS上のファイルの使用中が解除...
-
すでにファイルが開かれている...
-
VB6 Dir関数で52エラー発生
-
FORTRANの実行エラーについて
-
Excelvbaのマクロのファイル名...
-
Excelファイルのマクロによる排...
-
エクセルマクロでエラーの原因...
おすすめ情報