Sono solo un nuovo arrivato in ASP.NET MVC e non sono sicuro di come ottenere un determinato compito nella "giusta direzione".ASP.NET MVC AutorizzaAttributo il passaggio di valori a ActionMethod?
In sostanza, memorizzo l'ID utente registrato in HttpContext.User.Identity e ho scritto un EnhancedAuthorizeAttribute
per eseguire alcune autorizzazioni personalizzate.
Nel metodo sovrascritto OnAuthorization
, il mio modello di dominio raggiunge il database per garantire che l'ID utente corrente possa accedere al routeValue "BatchCode" passato. Il prototipo è:
ReviewGroup GetReviewGroupFromBatchCode(string batchCode);
tornerà null se l'utente non può accedere al ReviewGroup e l'OnAuthorization poi nega l'accesso.
Ora, so che il metodo di azione decorato verrà eseguito solo se passa OnAuthorization, ma non voglio colpire il database una seconda volta per ottenere nuovamente il ReviewGroup.
Sto pensando di memorizzare il gruppo di revisione in HttpContext.Items["reviewGroup"]
e accedervi dal controller al momento.
È una soluzione fattibile o sono sulla strada sbagliata?
Grazie!
Beh no, non ho bisogno dell'oggetto ReviewGroup per più di una singola richiesta. In realtà, tutto ciò di cui ho bisogno è passare questo oggetto (ottenuto in AuthorizeAttribute.OnAuthorization()) a ActionMethod(). –