Forms auth. Login or password failed.
От: el vacho Россия http://www.ircworld.ru
Дата: 27.09.06 17:59
Оценка:
Дано ASP.NET 2.0 + SQL 2005 Express приложение, использующее forms authentification. Вот содержимое web.config:

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <appSettings/>
  <connectionStrings>
    <add name="ConnectionString" 
      connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" 
      providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.web>
    <authorization>
      <allow roles="Moderator" />
    </authorization>
    <authentication mode="Forms" />
    <roleManager enabled="true" />
    <compilation debug="true"/>
  </system.web>
</configuration>

Есть автоматически созданный ASPNETDB.MDF, в котором храняться данные о двух ролях и двух юзерах. И есть Database.mdf с данными прикладного характера.
Из студии по 'F5' проект работает адекватно: вхожу под существующими логинами и соответствующие функции приложения становятся доступными или недоступными. Но когда публикую приложение IIS (пробовал и локальный и удалённый) мои логины или пароли не подходят, хотя ASPNETDB.MDF на сервере идентична локальной.
При этом вторая база данных работает нормально. Доступные для не авторизованных пользователей фичи работают.
Re: Forms auth. Login or password failed.
От: el vacho Россия http://www.ircworld.ru
Дата: 27.09.06 19:16
Оценка:
Всё дело в нтфс-правах. Пока не разобрался в каких именно и чьих, но если дать всем право модифицировать содержимое сайта, то логинится без проблем.
Re: Forms auth. Login or password failed.
От: Аноним  
Дата: 28.09.06 07:31
Оценка:
Параметры авторизации, задаваемые в файле Web.config, дублируют ряд параметров IIS. Если параметры авторизации заданы как файлом Web.config, так и параметрами IIS, первыми проверяются именно они, а лишь затем — файл Web.config. В результате, как прави-
ло, используются параметры, задающие минимальные права доступа. Поэтому естественно нужно сначала дать полные права в IIS, а после менять эти права в Web.config.
belka


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Forms auth. Login or password failed.
От: mrozov  
Дата: 28.09.06 07:48
Оценка:
Ты посмотри, в каком формате хранятся данные о пользователях, достаточно любопытно. Помимо всего прочего, там учитывается название виртуальной директории (или приложения... точно не помню). Т.е. при механическом переносе на другую машину в общем случае аутентификация отъезжает.

Сам я для простых случаев сделал элементарную страницу для создания пользователей и подкладываю ее в директорию с приложением. Для более сложных, (которыми я не занимаюсь) есть где-то готовая приблуда, поищи в сети, она дублирует функционал настройки сайта из студии.

Ну или подправь название приложения в базе.
Re[2]: Forms auth. Login or password failed.
От: el vacho Россия http://www.ircworld.ru
Дата: 28.09.06 16:50
Оценка:
Здравствуйте, belkazl, Вы писали:

B>...Поэтому естественно нужно сначала дать полные права в IIS, а после менять эти права в Web.config.


Дал группе everyone NTFS права на модификацию дирректироии приложения. Права в IIS не трогал. Заработало.
Так и не понял кому и на что нужны права для нормального функционирования.
Re[2]: Forms auth. Login or password failed.
От: el vacho Россия http://www.ircworld.ru
Дата: 28.09.06 16:56
Оценка:
Здравствуйте, mrozov, Вы писали:

M>Ты посмотри, в каком формате хранятся данные о пользователях, достаточно любопытно. Помимо всего прочего, там учитывается название виртуальной директории (или приложения... точно не помню). Т.е. при механическом переносе на другую машину в общем случае аутентификация отъезжает.


Механически не переносил. При публикации пользовался услугами студии. Да и не заметил я чувствительности к имени приложения: на IIS каталог называется иначе, чем проект, и ничего -- после установки NTFS-прав начинает работать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.