2010-04-16 4 views
0

У меня возникли проблемы с управлением доступом ASP.NET 2.0.ASP.NET Login Control отвергает пользователей, которые существуют

  • Я установил базу данных с помощью инструмента regpql aspI.net.
  • Я проверил имя приложения. Он установлен на «/».

Приложение может получить доступ к SQL Server. Фактически, когда я иду, чтобы получить пароль, он даже отправит мне пароль. Несмотря на это, элемент управления входами продолжает отклонять логины.

Я добавил это к web.config:

<membership defaultProvider="AspNetSqlProvider"> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </providers> 

И я добавил следующие мои строки подключения:

<remove name="LocalSqlServer" /> 
    <add name="LocalSqlServer" connectionString="Data Source=IDC-4\EXCALIBUR;Initial Catalog=allied_nr;Integrated Security=True;Asynchronous Processing=True"/> 

(Обратите внимание на «имя удалить», чтобы избавиться от подключения по умолчанию string в каталоге App_Data.)

Почему система авторизации не проверяет подлинность пользователей?

+0

Можете ли вы отобразить соответствующий раздел вашего web.config? – jim

+0

Вы проверили БД, чтобы проверить, заблокирована ли учетная запись или одобрена ли она? ? – Zachary

ответ

1

Похоже, что вы сохраняете свои пароли в текстовом формате, но формат хранения пароля по умолчанию SqlMembershipProvider - «Hashed». Вы никогда не сможете получить пароль пользователя из базы данных, если он хранится как хэшированный.

+0

Что заставляет вас думать, что я храню пароли в текстовом виде? Я запустил инструмент создать схему членства ASP.NET. Разве это не создало бы метод хранения по умолчанию в схеме? Я создаю пользователя сейчас в инструменте администрирования, который, я думаю, использовал бы подход по умолчанию, нет? – rsteckly

+0

Из-за вашего утверждения, «когда я пойду, чтобы получить пароль, он даже отправит мне пароль». Хэш является односторонним, поэтому, если он хранит его в хэшированном формате, тогда он не сможет его получить, только подтвердите ввод пользователя. – cortijon

0

На сайте 4 парня из Роллы был написан отличный набор статей о Службе воспоминаний. Проверьте это, поскольку я думаю, что это поможет!

http://www.4guysfromrolla.com/articles/120705-1.aspx

Из части 4 серии:

«В системе членства, существует несколько сценариев, по которым учетные данные пользователя могут быть недействительны:

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

К сожалению, ValidateUser (имя пользователя, пароль) метод просто возвращает значение False, если учетные данные являются недопустимыми и не содержат информации о том, почему именно учетные данные недействительны. «

 Смежные вопросы

  • Нет связанных вопросов^_^