ASP.NET integrado en el perfil de usuario vs.clases/tablas de usuario de estilo antiguo

StackOverflow https://stackoverflow.com/questions/1683

  •  08-06-2019
  •  | 
  •  

Pregunta

Estoy buscando orientación sobre las mejores prácticas en torno al uso de la función Perfil en ASP.NET.

¿Cómo decide qué se debe conservar en el perfil de usuario integrado o si debe crear su propia tabla de base de datos y agregar una columna para los campos deseados?Por ejemplo, un usuario tiene un código postal, ¿debería guardar el código postal en mi propia tabla o debería agregarlo al perfil xml de web.config y acceder a él a través del mecanismo ASP.NET del perfil de usuario?

Los pros y los contras que se me ocurren ahora son que como no conozco muy bien el perfil (es un poco complicado Matriz ahora mismo), probablemente pueda hacer lo que quiera si sigo la ruta de la tabla (por ejemplo, SQL para que todos los usuarios estén en el mismo código postal que el usuario actual).No sé si puedo hacer lo mismo si uso el perfil ASP.NET.

¿Fue útil?

Solución

Solo he creado 2 aplicaciones que usaban el proveedor de perfiles.Desde entonces he dejado de usarlo.Para ambas aplicaciones lo usé para almacenar información sobre el usuario, como el nombre de su empresa, dirección y número de teléfono.

Esto funcionó bien hasta que nuestro cliente quiso poder encontrar un usuario mediante uno de estos campos.La búsqueda implicaba recorrer en bucle cada perfil de los usuarios y comparar la información con los criterios de búsqueda.A medida que la base de usuarios creció, el tiempo de búsqueda se volvió inaceptable para nuestro cliente.La única solución fue crear una tabla para almacenar la información de los usuarios.La velocidad de búsqueda aumentó enormemente.

Recomendaría almacenar este tipo de información en su propia tabla.

Otros consejos

El perfil de usuario es un marco limpio y agradable para la personalización individual (también conocido como.Propiedades del perfil).(p.ej.IGOOGLE) El problema no está diseñado para consultar y no es ideal para compartir datos a usuario público (aún podría hacerlo, con bajo rendimiento)

Por lo tanto, si desea mejorar la experiencia de usuario personalizada, el perfil de usuario sería una buena opción.de lo contrario, usar su propia clase y tabla sería una solución mucho mejor.

En mi experiencia, es mejor mantener la información del perfil al mínimo, colocar solo lo esencial que se necesita directamente para la autenticación.Otra información, como las direcciones, debe guardarse en su propia base de datos mediante la lógica de su propia aplicación; este enfoque es más extensible y fácil de mantener.

Creo que eso depende de cuántos campos necesites.Que yo sepa, los perfiles son esencialmente una cadena larga que se divide en los tamaños de campo dados, lo que significa que no se escalan muy bien si tiene muchos campos y usuarios.

Por otro lado, están integrados, por lo que es una forma fácil y estandarizada, lo que significa que no hay una gran curva de aprendizaje y también puedes usarlo en aplicaciones futuras sin necesidad de modificarlo a una nueva estructura de tabla.

Desarrollar lo suyo le permite colocarlo en una base de datos correctamente normalizada, lo que mejora drásticamente el rendimiento, pero usted mismo debe escribir prácticamente todo el código de administración del perfil.

Editar:Además, los perfiles no se almacenan en caché, por lo que cada acceso a un perfil va primero a la base de datos (luego se almacena en caché para esa solicitud, pero la siguiente solicitud lo obtendrá nuevamente de la base de datos)

Si estás pensando en escribir lo tuyo, tal vez un Proveedor de perfil personalizado te ofrece lo mejor de ambos mundos: integración perfecta y, al mismo tiempo, las cosas personalizadas que deseas hacer.

Creo que es mejor usarlo para datos complementarios que no son críticos para el usuario y que normalmente solo son importantes cuando ese usuario inicia sesión de todos modos.Piense en datos que no romperían nada importante si se borraran por completo.

Por supuesto, eso es preferencia personal, pero otros han planteado otras cuestiones importantes.

También es muy útil considerando que puede usarse para un usuario no autenticado cuyo perfil se mantiene con una cookie anónima.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top