В IIS7 Environment.UserName отличается, когда пользователь вошел в систему

У меня есть приложение Asp.Net MVC, которое работает на общем хосте под IIS7. Приложение использует проверку подлинности с помощью форм с MembershipProvider по умолчанию. У меня есть следующий код на одной из моих страниц.

@Environment.UserDomainName - @Environment.UserName

Когда я захожу на сайт как анонимный пользователь, он показывает: WSWB12 - IUSR_139 А если я вошел в систему: WORKGROUP - WSWB12$

Проблема в том, что только учетная запись IUSR имеет доступ на запись к моим папкам. Поэтому, когда пользователь вошел в систему, он не может загружать файлы.

Могу ли я что-то с этим сделать? - Я бы предпочел остаться в интегрированном режиме. - Выполнение олицетворения было бы нормально для меня. Но похоже, что мой хост просмотрел этот раздел в machine.config. Есть ли какие-либо настройки, которые мой хост может сделать в виртуальном каталоге, чтобы он всегда использовал IUSR?

Благодарен за любую помощь, которую вы можете предоставить.


person Mikael Eliasson    schedule 02.02.2011    source источник
comment
какую ошибку вы получаете при попытке олицетворения?   -  person Taylor Bird    schedule 03.02.2011
comment
Когда я попытался добавить раздел олицетворения в файл web.config, я получил сообщение об ошибке, говорящее о том, что раздел заблокирован в файле machine.config.   -  person Mikael Eliasson    schedule 03.02.2011


Ответы (1)


При проверке подлинности с помощью форм следует использовать

HttpContext.Current.User.Identity.Name

для доступа к имени пользователя...

Вы должны проверить идентификатор пула приложений. Вы можете установить это для пользователя по вашему выбору, у которого могут быть правильные привилегии.

person Yngve B-Nilsen    schedule 02.02.2011
comment
Важно не имя вошедшего в систему пользователя. Это имя учетной записи, под которой работает приложение, управляющее доступом к IO. Так что Environment.UserName в этом случае правильный. - person Mikael Eliasson; 02.02.2011
comment
Без проблем. Спасибо за попытку - person Mikael Eliasson; 02.02.2011
comment
Пропустил тот. Это общий хост, и я подозреваю, что они неправильно настроили учетную запись. Может быть, мне следует попытаться заставить их установить личность либо в пуле приложений, либо на веб-сайте (подключиться как). - person Mikael Eliasson; 02.02.2011
comment
Можете ли вы просто отключить проверку подлинности Windows и установить идентификатор анонимного метода для использования идентификатора пула приложений? Это все web.config'rable - person Taylor Bird; 03.02.2011
comment
Принял этот ответ, потому что я уверен, что это решение. Мой хост все еще утверждает, что не может это исправить =› новый хостинг - person Mikael Eliasson; 13.02.2011