Машинный ключ членства в ASP.NET 4 - PullRequest
1 голос
/ 03 января 2012

У меня было около 5 месяцев работающего сайта asp.net 4, и сегодня я изменил регулярное выражение, чтобы ослабить ограничения на пароли. Я все еще могу создавать и получать доступ к новым учетным записям, но больше не могу получить доступ к ранее зарегистрированным.

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

Когда я проверяю базы данных и просматриваю таблицы членства и профиля, старые и новые пользователи, до и после изменения регулярного выражения, все находятся в одной таблице. Это приводит меня к моему последнему открытию и тому, с которым у меня нет опыта. Существует ли новый ключ компьютера, который создает новых пользователей, но не может расшифровать старых, и, следовательно, сделать их недоступными? Если так, как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 03 января 2012

Как и ваш комментарий, моей первой мыслью было изменение ключа приложения.Этот ключ хранится в web.config / system.web / members:

<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider"
      ...
      applicationName="YOUR_KEY_HERE" />
  </providers>
</membership>

Этот ключ позволяет различным приложениям с одним и тем же поставщиком членства (например, System.Web.Security.SqlMembershipProvider в вашем случае) использовать одну и ту же базу данных дляхранение данных о членстве.

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

См. Также: Всегда устанавливайте свойство applicationName при настройке членства в ASP.NET 2.0 и других провайдеров

0 голосов
/ 03 января 2012

Моя проблема немного отличалась *, но я указал свой собственный машинный ключ в web.config.Подробности см. Здесь: http://msdn.microsoft.com/en-us/library/ff649308.aspx

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...