Verwenden von Aktionsparametern im benutzerdefinierten Autorisierungsattribut in ASP.NET MVC3
Habe ich einen controller sollte nur Antrag auf Genehmigung beim laden mit bestimmten Parametern. Wie, wenn der parameter ID ist 8 zum Beispiel.
Kam ich mit über eine benutzerdefinierte Gültigkeitsprüfung-Attribut wie dieses:
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (/* Action's inputparameter ID = 8 */)
{
return base.AuthorizeCore(httpContext);
}
return true;
}
}
Mein action sieht so aus (nicht, dass es interessant ist)
[MyAuthorize]
public ActionResult Protected(int id)
{
/* custom logic for setting the viewmodel from the id parameter */
return View(viewmodel);
}
Das problem ist, wie Sie sehen können, dass ich nicht wissen, wie Sie überprüfen, dass die ID-parameter in den autorisieren-Attribut.
Können Sie mir helfen mit eine Lösung?
InformationsquelleAutor der Frage SoonDead | 2011-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die id übergeben wird als request-parameter (GET oder POST) oder als route-Daten parameter:
InformationsquelleAutor der Antwort Darin Dimitrov
Solange
AuthorizeAttribute
geerbt wird, können Sie Ihre parameter ausAuthorizationContext
wie folgt:Den
ValueProvider
iteriert über alle registrierten Anbieter, die standardmäßig enthältRouteDataValueProvider
QueryStringValueProvider
undFormValueProvider
und tun all die Arbeit für Sie.Ansonsten empfehle ich
ActionFilterAttribute
.InformationsquelleAutor der Antwort Herman Kan
Müssen Sie etwas wie dieses.
InformationsquelleAutor der Antwort 4imble
InformationsquelleAutor der Antwort Avinash