2010-09-21 8 views
0

Я пытаюсь никогда не удалять фактические записи из важных таблиц в моей базе данных, вместо этого отмечу их как «Удаленные», установив соответствующее поле в «Истина». Но в случае членства этот подход не позволит любому будущему пользователю повторно использовать имя пользователя «удаленного» пользователя. Имя пользователя не будет проблемой, но что, если «удаленный» пользователь решает снова зарегистрироваться и пытается использовать тот же адрес электронной почты? Поскольку электронные письма также уникальны в членстве asp.net, он выдает ошибку, что письмо уже используется (удаленной учетной записью). Каков наилучший выход из этого?Каков наилучший способ для устранения непостоянных пользователей?

Заранее спасибо.

ответ

3

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

+0

Да, так я думал, что сделаю это. Если я найду адрес электронной почты, я бы запросил их, если они хотят восстановить пароль, а затем сбросить пароль, активировать свою учетную запись. – Dimitri

+0

Поскольку членство, которое я использую, не является чистым SqlMembershipProvider, а скорее гибридом между Sqlmembership и пользовательским хранилищем, я должен отметить это как ответ. но спасибо всем, кто ответил, действительно ценю это. – Dimitri

1

Возможно, вам понадобится кодовый путь для повторной активации, а не создание новой учетной записи после удаления. Вот как это делает WoW, и WoW не может ошибаться.

+0

Не могли бы вы предоставить более подробную информацию? я не думаю, что знаком с кодами. – Dimitri

+0

... что? Когда кто-то пытается создать учетную запись с существующим электронным письмом, просто используйте другую бизнес-логику для обработки сценария. Не пытайтесь сделать это таким же опытом, как создание новой учетной записи. –

+0

О, я понимаю, что вы имеете в виду. – Dimitri

0

Просто измените имя пользователя на что-то вроде «deleted001» или что-то в этом роде. Многие сайты делают это.

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

+0

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

+0

Лично я думаю, что они должны быть ... но это может быть моя собственная паранойя. ;) – NotMe

+0

Chnaging username не подходит, поскольку 1) тот же пользователь не сможет повторно использовать свой E-mail еще раз; 2) как насчет второго, третьего и последующих удалений одного и того же имени пользователя? Как управлять им? 3) Итак, у разных пользователей будут, например, сообщения или что-то под одним и тем же именем пользователя? 4) и т. Д. Таким образом, реактивный путь менее хлопотно. менее трудоемкий и более этически правильный. Мне, например, не нравится идея о том, что мой ник используется другими –

1

Если вы используете SqlMembershipProvider, просто заблокируйте учетную запись и установите комментарий, указывающий, что блокировка является постоянной.

Это не будет содержать никаких изменений, только корректировка рабочего процесса.

Опять же, предполагается, что вы используете стек членства в акции.

+0

Вы говорите, что SqlMembershipProvider исключает из проверки проверки электронной почты заблокированных учетных записей? – Dimitri

+0

@dimi - исправления - заблокированные аккаунты не могут быть подтверждены. что бы не избежать цели блокировки счета, нет? ;-) –

+0

um, я думаю :) нужно попробовать – Dimitri

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