Estoy trabajando en un nuevo sitio que usa la identidad asp.net para registrar usuarios. Estoy haciendo uso de las direcciones de correo electrónico como nombres de usuario y la dirección de correo electrónico debe confirmarse antes de que el usuario pueda iniciar sesión.
He estado trabajando de acuerdo con las especificaciones y nuestra política de administración de contraseñas de la organización. La combinación de los 2 me daría varios mensajes detallados a un usuario al realizar acciones relacionadas con la cuenta, por ejemplo:
- Al seleccionar "Contraseña olvidada" para un nombre de usuario que no existe, aparece el mensaje: Este nombre de usuario no existe.
He estado pensando que la mejor práctica sería no confirmar ni negar si existe la dirección de correo electrónico. Por este motivo, quiero mostrar el mensaje de éxito: "Las instrucciones sobre cómo proceder se enviaron a la dirección de correo electrónico proporcionada" incluso cuando el usuario que se proporcionó no existe.
Sin embargo, aplicar este principio a otras acciones relacionadas con la cuenta es un poco complicado. Por ejemplo; de acuerdo con la especificación al seleccionar Reenviar el correo electrónico de confirmación de una cuenta que ya está confirmada, debería mostrar el mensaje: "Esta cuenta ya está activada". Eso allí mismo muestra a cualquier otro usuario anónimo que existe la cuenta. Ahora, si muestro el mensaje de éxito, el usuario puede sentarse y esperar el correo electrónico, lo que significa que en realidad debería enviarle un correo electrónico. En caso de que este correo electrónico sea el correo electrónico de activación habitual, o uno que indique: "Su cuenta ya está activada. Abra el sitio e inicie sesión".
Otro problema es al registrarse. Si muestro un mensaje genérico de "Intento de registro no válido" al registrarme con una cuenta existente, mi servicio de atención podría estar inundado de llamadas de usuarios enojados. (De acuerdo, probablemente no esté inundado, pero después de la primera, la mesa de servicio descubre que el usuario se comunicó con ellos debido a un mensaje de error genérico para un problema específico e identificado; Sin embargo, una vez más, si le muestro un mensaje al usuario indicando que la cuenta ya existe, volveremos a empezar.
Además, cuando un usuario inicia sesión 5 veces incorrectamente, debo bloquear su cuenta. Si le digo que su cuenta está bloqueada, este es otro medio por el cual una persona anónima puede confirmar si el nombre de usuario existe o no.
He buscado literatura en línea con pautas sobre estas interacciones, pero no he encontrado mucho.