Это может не совсем ответить на вопрос, но он удовлетворил мои потребности и, возможно, и другие.
Итак, если вы просто хотите показать разные тексты или изображения, сохраните тег пустым и напишите свой контент в нескольких атрибутах данных, таких как . Отобразите их с одним из псевдо классов
:before {content: attr(data-text1)}
Теперь у вас есть несколько способов переключения между ними. Я использовал их в сочетании со мультимедийными запросами для гибкого подхода к дизайну, чтобы изменить имена моей навигации на значки.
Если вы НЕ используете ActiveDirectory, проигнорируйте все остальные решения, указанные выше. Путаница возникает из-за новой настройки ApplicationPoolIdentity по умолчанию в IIS 7.5 (MS постоянно меняет механизмы идентификации)
Если Вы смотрите в описании поля, оно указывает, что выполнение в соответствии с учетной записью "Сетевых служб" является рекомендуемой учетной записью для использования. Не уверенный, почему в Win7 это принимает значение по умолчанию к установке ApplicationPoolIdentity.
Первый шаг должен проверить, под какой учетной записью Ваш веб-сайт работает. Создайте простую aspx страницу с:
<%@ Page Language="C#" %>
<% Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name); %>
при использовании аутентификации Windows, учетная запись WindowsIdentity должна будет иметь вход в систему в SQL Server. Под безопасностью-> Логины-> Вход в систему, Новый, Вы захотите добавить безотносительно имени, которое было отображено WindowsIdentity, и удостоверьтесь, что аутентификация Windows выбрана.
, Если Вы когда-нибудь, оказывается, перемещаете свою базу данных в отдельную машину, необходимо будет создать учетную запись домена и олицетворение использования в web.config. Google <identity impersonate="true">
для большего количества информации
Я знаком с идеей дать полномочия пользователю, которого приложение выполняет под... моей проблемой, то, что в IIS7, "пользователь", кажется, является виртуальным или что-то странное как этот. До меня изменяющий свойство "Identity" свойств Application Pool к СЕТЕВОЙ СЛУЖБЕ, это было установлено на "ApplicationPoolIdentity", и ошибка, которую я получал, состояла в том, что "IIS APPPOOL\MyApplicationName" не имел доступа к базе данных. Когда я попытался добавить "IIS APPPOOL\MyApplicationName" пользователь к базе данных, это, казалось, не существовало... не, что я мог найти так или иначе.
, Таким образом, моя окончательная проблема не понимает или способность найти любую хорошую документацию относительно того, как модель обеспечения безопасности IIS7 работает. Когда я создал приложение, это, казалось, создало AppPool с тем же названием только этого приложения. Я не знаю точно, что изменяется, я должен сделать для предоставления приложения и/или пользователя, которого оно выполняет под полномочиями к базе данных, рассматривая то, что пользователь, которого выполняет AppPool, как не появляется к на самом деле , существует.
, Поскольку я упомянул, изменение Идентификационных данных AppPool к СЕТЕВОЙ СЛУЖБЕ, кажется, работало на данный момент, но я пытаюсь узнать то, что лучшая практика для такого рода вещи под IIS7. Спасибо.
Хорошо... изменение свойства ApplicationPoolIdentity и установка его к СЕТЕВОЙ СЛУЖБЕ, кажется, решили мои проблемы. Не уверенный, если это - "правильный" способ сделать вещи или не (как в, я не уверен - ли это рекомендуемый способ сделать вещи в IIS7 или не), но это, кажется, по крайней мере, работает и получило меня мимо этого зависания на данный момент. Спасибо.
оставьте тяжелые проблемы для кого-то еще -
создайте sql пользователя и используйте Автора SQL.
Эта ошибка обычно означает, что у пользователя, которого Ваш сайт выполняет как (или главный пул приложений), нет полномочий использовать DB. Можно или зарегистрироваться в IIS, под каким пользователем пул работает, и дайте им полномочия или вместо этого измените строку подключения SQL, чтобы не использовать аутентификацию, которой доверяют, и предоставить учетные данные пользователя, который действительно имеет разрешение в строке подключения.
Редактирование: Если Вы щелкаете правой кнопкой по разделу Identity пула и переходите к свойствам, он должен придумать поле, которое позволяет, Вы или выбрать из 3 учетных записей встроенной системы, или указывают Вашу собственную учетную запись. Или дайте одно из встроенного разрешения учетных записей для DB или используйте учетную запись, которая имеет разрешение. Или оставьте его, как, и измените свою строку подключения.
Вот статья, которая объясняет, почему используются AppPoolIdentities; в основном речь идет об улучшенной безопасности: http://learn.iis.net/page.aspx/624/application-pool-identities/
(В этой статье утверждается, что я могу использовать эти виртуальные учетные записи, как и любую обычную учетную запись но на моем Windows Server 2008 это не представляется возможным; добавление, например, IIS AppPool \ DefaultAppPool просто приводит к ошибке: «Следующий объект не принадлежит домену, указанному в диалоговом окне« Выбор местоположения », и поэтому недопустим».)
У меня точно такая же проблема. Я использую Windows 7 RC. Когда я пытаюсь использовать файл .mdf (расположенный в App_Data), теперь есть способ заставить эту вещь работать. Я пытался изменить идентификатор AppPool для LocalSystem, но это просто не сработает.
Если я использую «стандартную» базу данных, то она будет работать, если я использую LocalSystem,
Ошибка означает, что веб-приложение не имеет доступа к вашей базе данных. В 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, поэтому прислушайтесь к моему совету с недоверием, я могу полностью ошибаться . (Если другой человек может подтвердить, что это правильные шаги, не стесняйтесь удалить последнее предупреждение).
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. ;)