F-ES Sitecore
На самом деле есть много способов сделать это. Хотя вам наверняка понадобится новый стол
Пользователь (ID, First_Name, Last_Name, email)
Пароли (идентификатор, идентификатор пользователя, пароль, активный (бит))
User
----
1 | John | Doe | me@here.com
Password
--------
1 | 1 | hello | 0
2 | 1 | world | 1
Итак, у пользователя 1, Джо, есть текущий пароль " мир "и предыдущий пароль"привет". Вероятно, вам также понадобится поле даты для этого пароля, которое показывает, когда он был создан. Чтобы получить текущий пароль, вы просто присоединяетесь к пользователю с паролем
Выбрать * из [пользователь] тебя присоединиться [пароль] П О П.Идентификатор пользователя = у.ID и С. Активный = 1
Для этого метода потребуется индекс столбца UserID таблицы паролей. Альтернатива была бы такой
Пользователя (идентификатор, имя, фамилия, адрес электронной почты, PasswordID)
Пароли (ID, UserID, Password)
User
----
1 | John | Doe | me@here.com | 2
Password
--------
1 | 1 | hello
2 | 1 | world
Затем, чтобы получить пароль, вы присоединитесь к таблице паролей на PasswordID on User. С помощью любого из этих методов вы просто проверяете старые пароли при создании новых, и если их история превышает 5, удаляете все, что выходит за пределы пятого.
Кроме того, я надеюсь, что вы шифруете свои пароли и не храните их в виде обычного текста.
prakashraj2890
Спасибо за ваш ответ.. :)
Но здесь я столкнулся с одной проблемой
Пользователь (ID, First_Name, Last_Name, email)
Пароли (идентификатор, идентификатор пользователя, пароль, активный (бит))
Здесь в таблице пользователей столбец " ID " является столбцом identity
Поэтому в момент вставки данных в таблицу паролей не удалось получить значение столбца "UserId" в storeprocedure
F-ES Sitecore
Когда вы меняете пароль, вы будете знать идентификатор пользователя, для которого вы его создаете, поэтому вы просто введете его в таблицу. Когда вы создаете пользователя в первый раз, вам нужно сделать две вставки. Сначала вы вставляете пользователя и получаете идентификатор этого пользователя, а затем вставляете его в таблицу паролей.
prakashraj2890
Это я уже сделал..
здесь я проверяю введенный адрес электронной почты уже используется для регистрации, если да, то не позволяет получить регистрацию(извините за плохой английский)
Я использовал эту функцию "@@IDENTITY". пожалуйста, подскажите мне, где лучше использовать эту функцию или иметь другую лучшую альтернативу .
Спасибо.
создать proc spRegistration
@fname nvarchar(20),
@lname nvarchar(20),
@password nvarchar(20),
@email nvarchar(20)
как
Начать
объявить @uid int
объявить @Count int
declare @ReturnCode int
выберите @Count = COUNT(электронная почта)
из сведений о пользователях, где электронная почта=электронная почта
если @Count> 0
Начать
set @ReturnCode=-1
конец
ещё
begin set @ReturnCode=1
Вставить в userinformation значения
(@fname,@lname,@email)
набор @идентификатор=функция@@Identity
вставить в passhistory (userId,password,Active ) значения (@uid,@password, 1)
конец
выберите @ReturnCode в качестве ReturnValue
Конец