У меня есть веб-приложение MVC, использующее проверку подлинности Windows. Итак, мы делаем такие вещи, как System.Web.HttpContext.Current.User.Identity.Name
Разрешить консольное приложение для доступа к веб-приложению Windows Authenticated
Теперь есть консольное приложение, которое я пишу, которое будет выполняться как часть пакетного задания. Все это консольное приложение необходимо сделать, это вызвать ActionResult
в главном веб-приложении, которое затем выполнит некоторые задачи обслуживания.
Теперь, поскольку консольное приложение не имеет идентификатора в контроллере домена/Active Directory, вызов с использованием System.Net.WebClient().DownloadString()
продолжает бросать ошибку 401.
Мой вопрос в том, есть ли способ разрешить этому приложению вызывать эту ссылку в главном веб-приложении без отключения WindowsAuthentication в web.config/IIS?
Любые идеи/предложения приветствуются.
Все приложение консоли содержит это
static void Main(string[] args)
{
try
{
new System.Net.WebClient().DownloadString(System.Configuration.ConfigurationSettings.AppSettings["http://foo.com/"]);
}
catch
{
}
}
Вы выполняете это как пакетное задание, означает ли это задание по расписанию? Если да, то какие учетные данные вы используете для его запуска. Это учетная запись домена, которая должна иметь доступ к вашей учетной записи MVC? – mclark1129
Да, он запускается как запланированная задача на сервере. Неважно, какая учетная запись используется. Все, что ему нужно, - это позвонить этому URL. –
Если веб-страница, к которой вы пытаетесь получить доступ, использует проверку подлинности Windows, тогда абсолютно важно, какие учетные данные запускаются в вашем консольном приложении. – mclark1129