2013-08-10 11 views
2

Чтобы загрузить файл, я добавил <identity impersonate="true" /> в файл Web.Config, потому что я не мог установить разрешения READ и WRITE.Сервер запрашивает имя пользователя и пароль при загрузке файла

И все работает отлично, но теперь, и я не знаю причины, сервер просит меня ввести имя пользователя и пароль для загрузки файла, и я ввожу свое имя пользователя и пароль ftp.

Как я могу обходить это? (Я могу только редактировать Web.config)

В настоящее время у меня есть это:

<identity impersonate="true" /> 

<authentication mode="Windows"/> 

Я пробовал:

<identity impersonate="true" userName="ftpaccount" password="ftppassword" /> 

Но это не сработало.

+0

Какую версию IIS использует ваш сервер? –

+0

Microsoft-IIS/7.5 –

ответ

2

Второй вариант, который вы пытаетесь сделать, кажется немного неправильным, поскольку при использовании WindowsAuthentication имена пользователей должны иметь форму: DOMAIN_NAME\UserName для учетных записей домена и COMPUTER_NAME\UserName для местной учетной записи пользователя.

Также убедитесь, что учетная запись пользователя, пытающаяся выдавать себя, имеет достаточные привилегии для создания файлов в ваших каталогах загрузки. Это была одна из причин, по которым моя заявка также столкнулась с такой же ситуацией при использовании: <identity impersonate="true" />

Ниже кратким описанием может быть оказана помощь.

При использовании IIS 7.5 приложение ASP.NET использует учетную запись Network Service для запроса системных ресурсов. Эта настройка определяется в <processModel> Элемент <system.web> раздел Machine.config.

<processModel autoConfig="true" /> 

В некоторых случаях значение для autoConfig может быть ложным. Таким образом, при использовании проверки подлинности Windows возможны два пути: [Поставить их в Web.config вашего приложения]

1.) <identity impersonate="true" />. мы должны удостовериться, что у пользователя, чья личность есть
, выданный имеет достаточные права на создание файлов в каталогах загрузки.

2.) Мы можем поставить имя учетной записи, которая всегда будет использоваться:

<identity impersonate="true" userName="DOMAIN\Username" password="password" /> 

Опять пользователь должен иметь достаточные привилегии. Также убедитесь, что UserName имеет формат: DOMAIN_NAME\UserName для учетных записей домена и COMPUTER_NAME\UserName для локальной учетной записи пользователя.

+1

Использование 'System.Security.Principal.WindowsIdentity.GetCurrent(). Name;' Я получил имя в указанном вами формате, так что теперь это пользователь по умолчанию, которому выдают себя за правду? Все, что я должен разрешить этому пользователю READ/WRITE доступ к папке, которую я загружаю? –

+0

Кроме того, когда я удалил impersonate = true, я получил следующее: «NT AUTHORITY \ NETWORK SERVICE». –

+0

YESS. Верный. Итак, вы пытались предоставить достаточные привилегии для учетной записи пользователя? ИЛИ попробуйте использовать UserAccount, у которого уже есть достаточные привилегии. –