Вопрос

Я написал новое приложение в сети, в которой раньше не работал, и столкнулся с проблемой.

Если у меня есть следующий код на C #:

FileStream fs = File.Create(@"\\MyServer\MyShare\testing.txt");
fs.Close();

В консольном приложении этот код выполняется корректно.

В ASP.Сетевом приложении я получаю эту ошибку: Ошибка входа в систему:неизвестное имя пользователя или неверный пароль.

В ASP.Сетевое приложение, если я добавлю в identity impersonate="true", я получу эту ошибку: Доступ к пути '\MyServer\MyShare esting.txt' запрещен.

Я никогда раньше не сталкивался с этим сообщением об ошибке входа в систему;откуда это берется?Если я создаю приложение на сервере и записываю его в физическое местоположение, оно работает нормально (значит, безопасность там хорошая), просто кажется, что защита общего ресурса не работает (хотя для параметра "Все" установлено значение "полная запись"), или чего-то не хватает на уровне сервера, при котором мне вообще ничего не разрешено просматривать.

Кто-нибудь знает, чего мне здесь не хватает?Я написал другие приложения, которые делали подобные вещи, и никогда не сталкивался с этой проблемой

Спасибо!

Это было полезно?

Решение

Обновить:

Поэтому я думаю, что опубликовал это слишком рано...Причина сбоя на моем локальном хостинге заключалась в том, что каталог был настроен как разрешающий анонимный доступ (поэтому страница не выдавала себя за;пользователь был ").

Он также начал работать и на сервере;однако там ничего не изменилось...Я не знаю, сработало ли что-то во время простоя / выключения приложения или что-то еще, но все работает так, как ожидалось.

Спасибо за комментарии!

Другие советы

Проблема в том, что для параметра identity impersonate установлено значение false ASP.NET учетная запись рабочего процесса пытается выполнить запись в общий ресурс, обычно это учетная запись СЕТЕВОЙ СЛУЖБЫ или ASPNET.В зависимости от того, какую версию Windows вы используете.

установив для impersonate значение true без указания имени пользователя или пароля, вы будете использовать текущую аутентификацию пользователей для попытки выполнения запроса.

Вам нужно будет либо предоставить разрешения учетной записи рабочего процесса, что, скорее всего, невозможно.Или B создайте конкретную учетную запись, которую ваше приложение может олицетворять, а затем укажите учетные данные внутри web.config в теге identity.

По умолчанию ASP.NET приложения запускаются как Ваша машина\IUSR_Твоя машина. Вам либо нужно открыть разрешения на общий ресурс участнику Everyone (что все равно может не сработать, если компьютеры не находятся в одном домене), либо запустить ваше приложение IIS от имени пользователя, имеющего доступ к общему ресурсу.

Вы можете изменить пользователя, под которым работает приложение ASP.NET с помощью:

.Открыть Административные инструменты -> Информационные службы Интернета затем щелкните правой кнопкой мыши на веб-сайте или виртуальном каталоге, содержащем приложение, и выберите Свойства.Выберите Безопасность каталога перейдите на вкладку и нажмите Редактировать.Наконец, в Анонимный доступ раздел введите имя пользователя и пароль пользователя, который имеет доступ к общему ресурсу.

Майк

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top