IIS7, SQL 2008 и ASP.NET безопасность MVC

Это может не совсем ответить на вопрос, но он удовлетворил мои потребности и, возможно, и другие.

Итак, если вы просто хотите показать разные тексты или изображения, сохраните тег пустым и напишите свой контент в нескольких атрибутах данных, таких как . Отобразите их с одним из псевдо классов :before {content: attr(data-text1)}

Теперь у вас есть несколько способов переключения между ними. Я использовал их в сочетании со мультимедийными запросами для гибкого подхода к дизайну, чтобы изменить имена моей навигации на значки.

демонстрация jsfiddle и примеры

17
задан Cade Roux 23 January 2009 в 20:14
поделиться

11 ответов

Если вы НЕ используете ActiveDirectory, проигнорируйте все остальные решения, указанные выше. Путаница возникает из-за новой настройки ApplicationPoolIdentity по умолчанию в IIS 7.5 (MS постоянно меняет механизмы идентификации)

  1. Откройте SQL Management Studio , подключитесь к локальному компьютеру как администратор.
  2. Разверните ] Безопасность ветвь.
  3. Щелкните правой кнопкой мыши Логины и выберите Новый вход
  4. . В поле Имя входа введите « IIS APPPOOL \ MyApplicationName ". НЕ НЕ нажимайте кнопку поиска. Профиль пользователя на самом деле не существует на локальном компьютере, он динамически создается по запросу.
31
ответ дан 30 November 2019 в 10:50
поделиться

Если Вы смотрите в описании поля, оно указывает, что выполнение в соответствии с учетной записью "Сетевых служб" является рекомендуемой учетной записью для использования. Не уверенный, почему в Win7 это принимает значение по умолчанию к установке ApplicationPoolIdentity.

0
ответ дан 30 November 2019 в 10:50
поделиться

Первый шаг должен проверить, под какой учетной записью Ваш веб-сайт работает. Создайте простую aspx страницу с:

<%@ Page Language="C#" %>
<% Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name); %>

при использовании аутентификации Windows, учетная запись WindowsIdentity должна будет иметь вход в систему в SQL Server. Под безопасностью-> Логины-> Вход в систему, Новый, Вы захотите добавить безотносительно имени, которое было отображено WindowsIdentity, и удостоверьтесь, что аутентификация Windows выбрана.

, Если Вы когда-нибудь, оказывается, перемещаете свою базу данных в отдельную машину, необходимо будет создать учетную запись домена и олицетворение использования в web.config. Google <identity impersonate="true"> для большего количества информации

1
ответ дан 30 November 2019 в 10:50
поделиться

Я знаком с идеей дать полномочия пользователю, которого приложение выполняет под... моей проблемой, то, что в IIS7, "пользователь", кажется, является виртуальным или что-то странное как этот. До меня изменяющий свойство "Identity" свойств Application Pool к СЕТЕВОЙ СЛУЖБЕ, это было установлено на "ApplicationPoolIdentity", и ошибка, которую я получал, состояла в том, что "IIS APPPOOL\MyApplicationName" не имел доступа к базе данных. Когда я попытался добавить "IIS APPPOOL\MyApplicationName" пользователь к базе данных, это, казалось, не существовало... не, что я мог найти так или иначе.

, Таким образом, моя окончательная проблема не понимает или способность найти любую хорошую документацию относительно того, как модель обеспечения безопасности IIS7 работает. Когда я создал приложение, это, казалось, создало AppPool с тем же названием только этого приложения. Я не знаю точно, что изменяется, я должен сделать для предоставления приложения и/или пользователя, которого оно выполняет под полномочиями к базе данных, рассматривая то, что пользователь, которого выполняет AppPool, как не появляется к на самом деле , существует.

, Поскольку я упомянул, изменение Идентификационных данных AppPool к СЕТЕВОЙ СЛУЖБЕ, кажется, работало на данный момент, но я пытаюсь узнать то, что лучшая практика для такого рода вещи под IIS7. Спасибо.

1
ответ дан 30 November 2019 в 10:50
поделиться

Хорошо... изменение свойства ApplicationPoolIdentity и установка его к СЕТЕВОЙ СЛУЖБЕ, кажется, решили мои проблемы. Не уверенный, если это - "правильный" способ сделать вещи или не (как в, я не уверен - ли это рекомендуемый способ сделать вещи в IIS7 или не), но это, кажется, по крайней мере, работает и получило меня мимо этого зависания на данный момент. Спасибо.

1
ответ дан 30 November 2019 в 10:50
поделиться

оставьте тяжелые проблемы для кого-то еще -

создайте sql пользователя и используйте Автора SQL.

1
ответ дан 30 November 2019 в 10:50
поделиться

Эта ошибка обычно означает, что у пользователя, которого Ваш сайт выполняет как (или главный пул приложений), нет полномочий использовать DB. Можно или зарегистрироваться в IIS, под каким пользователем пул работает, и дайте им полномочия или вместо этого измените строку подключения SQL, чтобы не использовать аутентификацию, которой доверяют, и предоставить учетные данные пользователя, который действительно имеет разрешение в строке подключения.

Редактирование: Если Вы щелкаете правой кнопкой по разделу Identity пула и переходите к свойствам, он должен придумать поле, которое позволяет, Вы или выбрать из 3 учетных записей встроенной системы, или указывают Вашу собственную учетную запись. Или дайте одно из встроенного разрешения учетных записей для DB или используйте учетную запись, которая имеет разрешение. Или оставьте его, как, и измените свою строку подключения.

1
ответ дан 30 November 2019 в 10:50
поделиться

Вот статья, которая объясняет, почему используются AppPoolIdentities; в основном речь идет об улучшенной безопасности: http://learn.iis.net/page.aspx/624/application-pool-identities/

(В этой статье утверждается, что я могу использовать эти виртуальные учетные записи, как и любую обычную учетную запись но на моем Windows Server 2008 это не представляется возможным; добавление, например, IIS AppPool \ DefaultAppPool просто приводит к ошибке: «Следующий объект не принадлежит домену, указанному в диалоговом окне« Выбор местоположения », и поэтому недопустим».)

2
ответ дан 30 November 2019 в 10:50
поделиться

У меня точно такая же проблема. Я использую Windows 7 RC. Когда я пытаюсь использовать файл .mdf (расположенный в App_Data), теперь есть способ заставить эту вещь работать. Я пытался изменить идентификатор AppPool для LocalSystem, но это просто не сработает.

Если я использую «стандартную» базу данных, то она будет работать, если я использую LocalSystem,

0
ответ дан 30 November 2019 в 10:50
поделиться

Ошибка означает, что веб-приложение не имеет доступа к вашей базе данных. В Windows 7 / IIS 7 по умолчанию у каждого пула приложений есть собственный пользователь. Похоже, идея состоит в том, чтобы повысить безопасность, ограничив то, что может делать это веб-приложение (на случай, если оно будет взломано и будет контролироваться извне). Вы можете изменить пользователя, под которым работает пул приложений, но это нарушит его цель. Похоже, что лучший способ предоставить пользователю пула необходимые разрешения (и не больше).

В SQL Management Studio подключитесь к серверу, к которому вы хотите, чтобы ваше веб-приложение подключалось (проверено с SQL server 2008). Щелкните правой кнопкой мыши

Security -> Log ins

, нажмите New Log in. В появившейся форме оставьте все по умолчанию, кроме имени пользователя, где вы должны ввести любое имя пользователя, которое веб-приложение пытается использовать, в данном случае ' IIS APPPOOL \ MyApplicationName '. Обратите внимание, что функция поиска в этом диалоговом окне не может найти или проверить действительного пользователя, но, тем не менее, она работает.

По-прежнему в SQL Management Studio, подключенной к серверу, выберите

Databases -> *YOUR-DATABASE* -> Security -> Users

щелкните правой кнопкой мыши и выберите Новый пользователь. Я не уверен, что поле имени пользователя имеет какой-либо эффект, я просто установил его последнюю часть имени пользователя, например MyApplicationName. Затем я установил имя входа в IIS APPPOOL \ MyApplicationName. Вы можете нажать на кнопку ... и использовать проверку и поиск, на этот раз он работает. Если вы не выполните предыдущий шаг, пользователя здесь не будет. Затем дайте ему любые разрешения, которые вы хотите для этого пользователя, например db_datareader.

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

У меня в общей сложности 2 часа опыта работы с IIS, около трех недель с SQL Server и менее двух месяцев с технологиями Microsoft, поэтому прислушайтесь к моему совету с недоверием, я могу полностью ошибаться . (Если другой человек может подтвердить, что это правильные шаги, не стесняйтесь удалить последнее предупреждение).

6
ответ дан 30 November 2019 в 10:50
поделиться

If you follow Mr. Fernández' advice, you will get everything working. This is the new way of giving least privilege to a site.

So don't do the easy, less secure thing (NETWORK SERVICE). Do the right thing. Scroll up. ;)

1
ответ дан 30 November 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: