Esta es una pregunta de patrón de principiante para un tipo de cosa de formularios web sobre datos. Leo Exposing database IDs - security risk? y la respuesta aceptada me hace pensar que esto es una pérdida de tiempo, pero espera ...Exponer ID de base de datos a la interfaz de usuario
Tengo un proyecto MVC que hace referencia a una biblioteca de lógica de negocios, y un conjunto de repositorios NHibernate SQL que hace referencia a la misma. Si algo me obligara a ir y hacer referencia a esos repositorios directamente desde mi código base de controlador, sabría qué salió mal. Pero cuando esos controladores hablan en parámetros de URL con los identificadores de registro de la base de datos, ¿se equivoca solo ?
No puedo concebir aquellos ID que alguna vez se vuelven no consumibles (mediante acciones de MVC). Yo no piensa Alguna vez necesitaría dos entidades de UI correspondientes a la misma fila en la base de datos. No pretendo que el controlador interprete la ID de ninguna manera. Las claves sustitutas harían una diferencia cero. Aún así, quiero tener el problema porque las suposiciones sobre el diseño de ralación no son mejores que las de salto de capa.
¿Cómo haría una aplicación web que solo hace referencia al ensamblaje de la lógica de negocios y habla en objetos BL y GUID que solo tienen significado para esa sesión, mientras que el ensamblaje persiste transacciones utilizando ID de base de datos?
Me diste mucho que pensar. ¿Puede arrojar alguna sugerencia sobre cómo implementar el mapeo y dónde almacenarlo? ¿Es realmente la "sesión" el mejor lugar en ASP? –
"el mapeo"? No está claro en lo que estás buscando. La protección de campo? Solo me sugirieron que realizara una función de cifrado que llevara: FieldName, FieldValue, SessionID. Luego, cuando descifrar, también necesita suministrar los 3 para descifrar. Entonces, alguien en otra sesión no puede secuestrar ese valor en absoluto. Debe ser todo lo que necesita para los parámetros de url. Si alguna vez necesita soporte para páginas sin sesión, puede tener un valor codificado en lugar del ID de sesión, no tan seguro, pero las páginas sin sesión no deberían tener acceso a nada sensible. –
I espaciado en el quid de su respuesta, sal con sesión: no hay necesidad de almacenar/administrar las asignaciones en absoluto - persistirían por exactamente el mismo tiempo. Esto es asombroso Gracias. –