Лучший отвечающий
Добавить cookie в WebBrowser?

Вопрос
-
Здравствуйте!
Я с помощью запросов HttpWebRequest получил cookies с ресурса на котором настроена NTLM авторизация. Теперь чтобы открыть этот ресурс в компоненте WebBrowser мне необходимо положить в него полученные cookies. Подскажите как это сделать?
- Перемещено Siddharth Chavan 1 октября 2010 г. 21:30 MSDN Forums Consolidation (От:Visual C#)
26 апреля 2010 г. 6:00
Ответы
-
Либо находимся в одном домене, либо вбиваем руками.
- Помечено в качестве ответа Sp3ct0r 29 апреля 2010 г. 11:04
26 апреля 2010 г. 15:27 -
Попробуйте
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData); private void Form1_Load(object sender, EventArgs e) { String url = ""; InternetSetCookie(url, "myCoockie", "CoockieData"); webBrowser1.Navigate(url); }
- Предложено в качестве ответа Megano 28 апреля 2010 г. 6:35
- Помечено в качестве ответа I.Vorontsov 29 апреля 2010 г. 10:49
26 апреля 2010 г. 11:09
Все ответы
-
Попробуйте
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData); private void Form1_Load(object sender, EventArgs e) { String url = ""; InternetSetCookie(url, "myCoockie", "CoockieData"); webBrowser1.Navigate(url); }
- Предложено в качестве ответа Megano 28 апреля 2010 г. 6:35
- Помечено в качестве ответа I.Vorontsov 29 апреля 2010 г. 10:49
26 апреля 2010 г. 11:09 -
не помогло. все равно запрашивает авторизацию. Код программы следующий
private void Form1_Load(object sender, EventArgs e) { HttpWebResponse webResponse = null; StreamReader reader = null; CredentialCache credentialCache = new CredentialCache(); Uri uri = new Uri(url); HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri); webRequest.CookieContainer = new CookieContainer(); credentialCache.Add(uri, "NTLM", new NetworkCredential(login, password, domain)); webRequest.Credentials = credentialCache; webRequest.AllowAutoRedirect = false; try { webResponse = (HttpWebResponse)webRequest.GetResponse(); foreach (Cookie cook in webResponse.Cookies) { Console.WriteLine(InternetSetCookie(url, cook.Name, cook.Value)); } webBrowser1.Navigate(url); } }
[DllImport("wininet.dll" , CharSet = CharSet.Auto, SetLastError = true )]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
- Изменено Sp3ct0r 26 апреля 2010 г. 14:19
26 апреля 2010 г. 12:30 -
Не приспособлен WebBrowser для программной NTLM авторизации , но получить какой то конкретный документ можно
private void Form1_Load(object sender, EventArgs e) { string user = "user"; string password = "pasword"; string url = @"http://"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.KeepAlive = true; request.Accept = @"*/*"; if (string.IsNullOrEmpty(user) == false && string.IsNullOrEmpty(password) == false) { NetworkCredential credential = new NetworkCredential(user, password); CredentialCache credentialCache = new CredentialCache(); credentialCache.Add(new Uri(url), "NTLM", credential); request.Credentials = credentialCache; } webBrowser1.DocumentStream = request.GetResponse().GetResponseStream();; }
26 апреля 2010 г. 14:10 -
Что вы подразумеваете под "Не приспособлен WebBrowser для программной NTLM авторизации "?
Если например в WebBrowser попытаться открыть ресурс с ntlm то появится окошко авторизации. Введя в нем данные мы можем спокойно гулять по этому ресурсу.
Я понимаю что можно получить документ, собственно я его получаю у себя но кидать его в WebBrowser бесполезно потому как это не авторизованный html.
Собственно задача в том чтобы пользователю не приходилось вводить данные в окно авторизации в WebBrowser а это делала программа а ему выдавался "залогиненный" ресурс.
26 апреля 2010 г. 14:37 -
Либо находимся в одном домене, либо вбиваем руками.
- Помечено в качестве ответа Sp3ct0r 29 апреля 2010 г. 11:04
26 апреля 2010 г. 15:27 -
Понятно, Спасибо!
А такой вопрос? А можно как нибудь получить форму окна авторицации при попытке зайти на ресурс, и ввести туда данные программно?
26 апреля 2010 г. 16:27 -
Sp3ct0r , не забывайте помечать ответы. Спасибо.
Для связи [Mail]27 апреля 2010 г. 8:58