Ich bin nur ein Neuling in ASP.NET MVC und bin mir nicht sicher, wie man eine bestimmte Aufgabe "den richtigen Weg" erreicht.ASP.NET MVC AuthorizeAttribute Übergabe von Werten an ActionMethod?
Im Wesentlichen speichern ich die angemeldete userId in HttpContext.User.Identity und haben eine EnhancedAuthorizeAttribute
geschrieben, um einige benutzerdefinierte Autorisierung durchzuführen.
In der Methode overriden OnAuthorization
trifft mein Domänenmodell die Datenbank, um sicherzustellen, dass die aktuelle Benutzer-ID auf den übergebenen routeValue "BatchCode" zugreifen kann. Der Prototyp ist:
ReviewGroup GetReviewGroupFromBatchCode(string batchCode);
Es wird null zurück, wenn der Benutzer nicht die ReviewGroup und die OnAuthorization zugreifen können dann verweigert den Zugriff.
Jetzt weiß ich, dass die dekorierte Aktionsmethode nur ausgeführt wird, wenn OnAuthorization besteht, aber ich möchte die Datenbank nicht ein zweites Mal treffen, um die ReviewGroup wieder zu bekommen.
Ich denke über das Speichern der ReviewGroup in HttpContext.Items["reviewGroup"]
und Zugriff auf diese von der Steuerung im Moment.
Ist das eine machbare Lösung, oder bin ich auf dem falschen Weg?
Danke!
Nun, nein, ich brauche das Objekt ReviewGroup nicht für mehr als eine einzige Anfrage. Wirklich, alles, was ich brauche, ist, dieses Objekt (erhalten in der AuthorizeAttribute.OnAuthorization()) an die ActionMethod() zu übergeben. –