// Cookie関連
[DllImport("wininet.dll", EntryPoint = "InternetSetCookie", ExactSpelling = false, CharSet = CharSet.Unicode, SetLastError = true)]
static extern bool InternetSetCookie(string domain, string name, string value);
public static void SetCookie(string domain, string name, string value)
{
if (!InternetSetCookie(domain, name, value))
throw new Exception("Exception setting Cookie: Win32 Error");
}
[DllImport("wininet.dll", EntryPoint = "InternetGetCookie", CharSet = CharSet.Unicode, SetLastError = true)]
public static extern bool InternetGetCookie(string domain, string name, StringBuilder value, ref int size);
public static string RetriveIECookies(string domain)
{
StringBuilder cookie = new StringBuilder(new String(' ', 256), 256);
int size = cookie.Length;
if (!InternetGetCookie(domain, null, cookie, ref size))
{
if (size < 0) return String.Empty;
new StringBuilder(size);
InternetGetCookie(domain, null, cookie, ref size);
}
return cookie.ToString();
}
ICAgICAgICAvLyBDb29raWXplqLpgKMKICAgICAgICBbRGxsSW1wb3J0KCJ3aW5pbmV0LmRsbCIsIEVudHJ5UG9pbnQgPSAiSW50ZXJuZXRTZXRDb29raWUiLCBFeGFjdFNwZWxsaW5nID0gZmFsc2UsIENoYXJTZXQgPSBDaGFyU2V0LlVuaWNvZGUsIFNldExhc3RFcnJvciA9IHRydWUpXQogICAgICAgIHN0YXRpYyBleHRlcm4gYm9vbCBJbnRlcm5ldFNldENvb2tpZShzdHJpbmcgZG9tYWluLCBzdHJpbmcgbmFtZSwgc3RyaW5nIHZhbHVlKTsKCiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFNldENvb2tpZShzdHJpbmcgZG9tYWluLCBzdHJpbmcgbmFtZSwgc3RyaW5nIHZhbHVlKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKCFJbnRlcm5ldFNldENvb2tpZShkb21haW4sIG5hbWUsIHZhbHVlKSkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkV4Y2VwdGlvbiBzZXR0aW5nIENvb2tpZTogV2luMzIgRXJyb3IiKTsKICAgICAgICB9CgogICAgICAgIFtEbGxJbXBvcnQoIndpbmluZXQuZGxsIiwgRW50cnlQb2ludCA9ICJJbnRlcm5ldEdldENvb2tpZSIsIENoYXJTZXQgPSBDaGFyU2V0LlVuaWNvZGUsIFNldExhc3RFcnJvciA9IHRydWUpXQogICAgICAgIHB1YmxpYyBzdGF0aWMgZXh0ZXJuIGJvb2wgSW50ZXJuZXRHZXRDb29raWUoc3RyaW5nIGRvbWFpbiwgc3RyaW5nIG5hbWUsIFN0cmluZ0J1aWxkZXIgdmFsdWUsIHJlZiBpbnQgc2l6ZSk7CgogICAgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIFJldHJpdmVJRUNvb2tpZXMoc3RyaW5nIGRvbWFpbikKICAgICAgICB7CiAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgY29va2llID0gbmV3IFN0cmluZ0J1aWxkZXIobmV3IFN0cmluZygnICcsIDI1NiksIDI1Nik7CiAgICAgICAgICAgIGludCBzaXplID0gY29va2llLkxlbmd0aDsKCiAgICAgICAgICAgIGlmICghSW50ZXJuZXRHZXRDb29raWUoZG9tYWluLCBudWxsLCBjb29raWUsIHJlZiBzaXplKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKHNpemUgPCAwKSByZXR1cm4gU3RyaW5nLkVtcHR5OwoKICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdCdWlsZGVyKHNpemUpOwogICAgICAgICAgICAgICAgSW50ZXJuZXRHZXRDb29raWUoZG9tYWluLCBudWxsLCBjb29raWUsIHJlZiBzaXplKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIGNvb2tpZS5Ub1N0cmluZygpOwogICAgICAgIH0=