In MVC, dov'è il posto giusto dove inserire il codice di autorizzazione?
Il controller?
Il modello?
Nella vista?In MVC, dov'è il posto giusto dove inserire il codice di autorizzazione?
Tutto il posto?
In MVC, dov'è il posto giusto dove inserire il codice di autorizzazione?
Il controller?
Il modello?
Nella vista?In MVC, dov'è il posto giusto dove inserire il codice di autorizzazione?
Tutto il posto?
Io voto per metterlo dove ha senso. La maggior parte delle mie cose di autorizzazione viene gestita attraverso la decorazione di azioni del controller (o anche di alcuni controller) con AuthorizeAttribute - o un attributo derivato da esso. In alcuni casi, come i miei menu, ho fatto ricorso al controllo dell'autorizzazione nel codice di visualizzazione stesso, piuttosto che calcolarlo in ogni controller e passare i flag in ViewData. Ci sono alcuni casi in cui determinati aspetti del modello sono disponibili solo per particolari ruoli e in quei casi ho fatto ricorso all'estensione del modello con metodi che possono prendere l'utente e i ruoli correnti e fare il controllo lì.
Se si deve scegliere tra M, V o c, la C è la posizione corretta. Tuttavia, raccomando un'architettura in cui la tua app sia contenuta nelle librerie e l'interfaccia utente sia solo un sottile rivestimento. Finisci per chiamare lo stack dal controller, ma il codice non è nel controller.
In MVC, il modello è solo un modello o un "oggetto dati stupido", se lo si desidera. È progettato per mantenere lo stato e non dovrebbe dettare un comportamento. La vista è per l'utente con cui interagire ed è anche "stupida"; la vista gestisce l'interfaccia utente. Il controller è il punto in cui si trova il comportamento o il punto di ingresso nel comportamento nel caso in cui la logica dell'app sia presente nelle librerie. Ha senso?
Modello.
Il controller è solo per passare attraverso diversi modi. La vista è solo per ... la visualizzazione.
Quindi è necessario eseguire tutti i codici di autorizzazione nel livello Modello. Idealmente, tutto funzionerà bene. In caso contrario, il controller porterà l'utente nella casella di accesso appropriata.
Penso che l'autorizzazione sia una preoccupazione trasversale. Dovrebbe essere in un posto - un aspetto che può essere applicato in modo dichiarativo dove è necessario.
Il controller!
La visualizzazione deve gestire solo l'interfaccia utente e il display Il modello deve rappresentare i dati nel sistema. Il controller deve gestire la logica di funzionamento del sistema.
Autorizzare un utente comporta l'acquisizione delle credenziali fornite dalla vista, controllandole con una sorta di elenco di autorizzazioni nel modello e quindi eseguendo un controllo.
Questo viene fatto nel controller: Ottenere le credenziali utente di Vista se (confrontare con la lista utenti in modello ritorna partita) autorizzare gli utenti altro rifiutano l'accesso
La tua definizione di MVC non è corretto. La M in MVC è la parte più importante, non è un oggetto dati stupido. Il comportamento dovrebbe essere in M, questa è la logica del tuo business. Non è chiaro se l'autorizzazione faccia parte della logica aziendale. –