Какие причины могут вызвать WebSecurity.ChangePassword () для FAil? - PullRequest
3 голосов
/ 13 августа 2011

Я работаю над проектом Razor и мне необходимо интегрировать существующую базу данных пользователей в схему БД провайдера SimpleMembership.Это делается путем указания моей существующей пользовательской таблицы и того, какие столбцы должны использоваться API SimpleMembership для имени пользователя и идентификатора пользователя.

WebSecurity.InitializeDatabaseConnection("DB_ConnStr", "User", "UserId", "Username", true);

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

Во время вставки я использую фиктивный зашифрованный токен для простоты и задаю пароль, который будет одинаковым для всех.Затем мне нужно запустить другой скрипт над записями, чтобы установить правильный пароль для каждого пользователя в таблице webpages_Membership.Это включает в себя расшифровку текущего пароля из существующей таблицы User, а затем вызов:

WebSecurity.ChangePassword( username, dummyPwd, newPwd) 

для каждого пользователя, передавая расшифрованный текущий пароль в качестве параметра 'newPwd'.

Это прекрасно работаетв 99% случаев это называется - более 100 000 записей.Но это примерно в 40 случаях.

Какие причины могут вызвать сбой этого метода?

1 Ответ

0 голосов
/ 09 сентября 2011

Моим первым предположением будет то, что хеш нового пароля может превышать предел в 128 символов.

При сбое вызова ChangePassword вы можете перехватить исключение, чтобы получить подробную информацию о причине сбоя?

...