Che cosa fanno tutti per gestire la sicurezza (recupero e modifica) dei singoli record in un'applicazione ASP.NET MVC? Questa applicazione ha un livello Service/Business e un livello di accesso ai dati completamente separati dall'interfaccia utente Web. Sto già utilizzando i provider di appartenenze e ruoli per gestire l'autenticazione e l'autorizzazione per aree/funzionalità specifiche nella mia applicazione, ma ora ho bisogno di proteggere singoli record.Gestione della sicurezza del livello di entità/entità in un'applicazione ASP.NET MVC
Ad esempio, dire che Bob può creare e modificare i propri record FooBar. Voglio assicurarmi che gli altri utenti non possano visualizzare o modificare i record di Bob. Voglio proteggermi dalla manipolazione degli URL e/o dagli errori di programmazione. Potremmo anche voler consentire a Bob di condividere i suoi FooBar con altri utenti, consentendo loro di visualizzare ma non modificare i suoi record.
Ci sono diversi approcci sono venuto su con:
- fare i controlli di sicurezza nello strato di accesso ai dati, direttamente nel recupero e modifica le query.
- Controllare la sicurezza nel livello di servizio, eseguire query di sicurezza aggiuntive prima di procedere con la logica aziendale.
- Creare un livello di sicurezza esistente tra l'interfaccia utente e il livello di servizio. L'interfaccia utente farebbe tutte le richieste attraverso il livello di sicurezza.
- Utilizzare la programmazione orientata agli aspetti (AOP). Creare aspetti di sicurezza e decorare i metodi del livello di servizio con gli attributi di sicurezza.
Ho eseguito la protezione nel livello di accesso ai dati (nelle query) nei progetti precedenti e si trasforma sempre in un pasticcio. Mi piacerebbe sapere cosa stanno facendo gli altri e quali sono le strutture che state usando per aiutarvi (framework AOP)