2015-06-09 4 views
3

У меня есть веб-приложение 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 
      { 

      } 
     } 
+0

Вы выполняете это как пакетное задание, означает ли это задание по расписанию? Если да, то какие учетные данные вы используете для его запуска. Это учетная запись домена, которая должна иметь доступ к вашей учетной записи MVC? – mclark1129

+0

Да, он запускается как запланированная задача на сервере. Неважно, какая учетная запись используется. Все, что ему нужно, - это позвонить этому URL. –

+0

Если веб-страница, к которой вы пытаетесь получить доступ, использует проверку подлинности Windows, тогда абсолютно важно, какие учетные данные запускаются в вашем консольном приложении. – mclark1129

ответ

5

Используйте UseDefaultCredentials:

 var client = new WebClient 
        { 
         UseDefaultCredentials = true 
        }; 
     client.DownloadString(address); 

это будет использовать то, что приложение консоли работает как (который может быть указан в списочных настройках задачи).

+0

Работал как шарм. Благодарю. –

+0

Спасибо, друг ... –

Смежные вопросы