Мы создаем приложение командной строки, которому требуются некоторые данные с сервера IIS с использованием проверки подлинности с помощью форм.Как я могу сделать проверку подлинности форм из приложения командной строки?Я пытался, но все, что происходит, это то, что запрос перенаправляется на страницу входа.
Я предполагаю, что, если бы я мог включить файл cookie для проверки подлинности в запрос с правильными учетными данными, загрузка прошла бы нормально.
У меня есть контроль над клиентом и сервером.Я могу установить machineKey в web.config, но не могу понять, как установить это в приложении командной строки.Это должен быть тот же ключ validationKey, чтобы зашифровать cookie в правильном формате?
Сервер записан в asp-net mvc.
var request = (HttpWebRequest)WebRequest.Create(uri);
var formsCookiePath = "/";
var cookieName = ".FormName";
var domain = "localhost";
var username = "username";
var password = "pa$$word";
var ticket = new FormsAuthenticationTicket(1,
username,
DateTime.Now,
DateTime.Today.AddYears(10),
true,
password,
formsCookiePath);
var encryptedTicket = FormsAuthentication.Encrypt(ticket);
var authenticationCookie = new Cookie(
cookieName,
encryptedTicket,
formsCookiePath,
domain)
{
HttpOnly = true,
Secure = false
};
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(authenticationCookie);
request.UserAgent = "Internal downloader";
var loWebResponse = (HttpWebResponse)request.GetResponse();
Обновление: на основе ответа от Zruty Iиспользовал этот пример для создания файла cookie аутентификации:
Авторизация ASP.NET из консольного приложения и время ожидания