ASP.NET 2.0 не может открыть SqlConnection - PullRequest
1 голос
/ 24 августа 2009

Использование: IIS 6; Анонимная аутентификация (с пользователем, который входит в группу администраторов); SQL Server 2005; .NET 2.0

Web.config:

<system.web>
    <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
    </securityPolicy>
  </system.web>

<identity impersonate="true"/>

У меня есть это исключение при попытке открыть SQLConnection:

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

Сведения об исключении: System.Security.SecurityException: сбой запроса разрешения типа «System.Data.SqlClient.SqlClientPermission, System.Data, версия = 2.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089».

Что бы это могло быть?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2009

Если вы используете, приложение попытается использовать учетные данные пользователя, а не анонимной учетной записи IIS.

Попробуйте удалить эту запись из конфига.

0 голосов
/ 24 августа 2009

Имеет ли xpto2 соответствующие разрешения на доступ к базе данных? Имеет ли учетная запись службы соответствующие разрешения на доступ к файлу базы данных, если это файл?

Если вы пишете приложение, которое требует, чтобы вы записали данные в базу данных или текстовый файл, вам нужно будет проверить и при необходимости изменить разрешения на сервере, чтобы у вас были права на запись и чтение на каталог, а также базу данных или текстовый файл, который вы также хотите написать (это возможно, только если вы, конечно, имеете полный контроль над этими вещами)

CAS или Code Access Security на платформе .Net представляют собой отдельную проблему. Безопасность доступа к коду позволяет в разной степени доверять коду в зависимости от того, откуда происходит код и от других аспектов идентичности кода. Защита доступа к коду также обеспечивает различные уровни доверия к коду, что сводит к минимуму объем кода, который должен быть полностью доверенным для выполнения. Поскольку вы дали полный доступ к коду, это не проблема.

Не могли бы вы проверить это руководство (поскольку вы используете II6).

...