Как я могу предоставить приложению ASP.NET MVC доступ на чтение к разделу реестра? - PullRequest
3 голосов
/ 03 декабря 2010

Я читал другие посты о том, как это сделать, но безрезультатно.При развертывании приложения на сервере (2008) во время выполнения я получаю следующее исключение:

Access to the registry key 'HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\Servers' is denied.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.UnauthorizedAccessException: Access to the registry key 'HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\Servers' is denied. 

ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6) that is used if the application is not impersonating. If the application is impersonating via <identity impersonate="true"/>, the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user. 

Чтобы предоставить ASP.NET доступ к файлу, щелкните файл правой кнопкой мыши в проводнике и выберите «Свойства».и выберите вкладку Безопасность.Нажмите «Добавить», чтобы добавить соответствующего пользователя или группу.Выделите учетную запись ASP.NET и установите флажки для нужного доступа.

Таким образом, ошибка кажется очень наглядной.Я открыл regedit и щелкнул правой кнопкой мыши по КЛЮЧУ (HKEY_CURRENT_USER \ Software \ Microsoft) -> Разрешения -> Добавил пользователя «NETWORK SERIVCE» и предоставил полный контроль.

Я предположил, что это пользователь ASP.NETвыполнялся для доступа к реестру.

Затем я попытался отключить «Включить наследуемые разрешения от родительского объекта этого объекта.

Это также не сработало.

Из IIS Managerв настройках аутентификации моего приложения я установил для пользователя «анонимная аутентификация» своего собственного, который входит в группу администратора.

Кажется, ничего не работает.

Как я могу решить эту проблему?Это внутренний инструмент, работающий в нашей локальной сети, поэтому на данном этапе меня не очень интересуют разрешения безопасности.Как я могу предоставить соответствующие привилегии?

Спасибо!

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

Мне пришлось установить для идентификатора пула приложений значение «LocalSystem» для этого приложения. Это позволило моему приложению иметь достаточно прав для чтения реестра.

1 голос
/ 06 декабря 2010

Трудно устранить неполадки, не зная, что пытается сделать ваше веб-приложение.Тем не менее, я предполагаю, что это веб-приложение, которое означает, что вы создали базу данных для своей сети.Во-первых, в вашем файле Web.configconnectionString попробуйте использовать имя пользователя и пароль, которые вы использовали для входа в SQL Server Management.Не используйте вход в Windows.Во-вторых, попробуйте запустить приложение с помощью функциональной клавиши F5.Это запустит встроенный сервер, поставляемый с Visual Studio 2008. Для этого не требуется локальный IIS.

Если проблема не устранена, отправьте мне или отправьте свой Web.config.Посмотрим, смогу ли я помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...