2010-01-11 7 views
2

J'ai écrit une classe d'extension pour personnaliser mon AuthorizeAttribute pour mes méthodes d'action et j'aimerais pouvoir injecter des messages dans ma vue lorsqu'une certaine condition est remplie. I « m en utilisant le code ci-dessous pour charger une vue partagée lorsqu'un utilisateur n'est pas autorisé, mais il est de ne pas ajouter mon message à ma collection ViewData. Des idées?Ajout à la collection ViewData [] de l'extension AuthorizeAttribute

public override void OnAuthorization(AuthorizationContext filterContext) 
{ 
    base.OnAuthorization(filterContext); 
    if (IsNotAuthorized) 
    { 
     filterContext.Result = new ViewResult { ViewName = "NotAuthorized" }; 
     filterContext.Controller.ViewData["Message"] = "Go Away"; 
    } 
} 

J'ai aussi tenté de mettre mon ViewData [ » message "] de l'élément de collection ci-dessus l'appel pour changer la vue sans succès

Répondre

0

Avez-vous essayé;.

filterContext.Result = new RedirectResult("Home/Index"); 

Je ne sais pas comment ajouter le ViewData mais cela vous rendre à la non autorisée contrôleur au moins

Je continuerai à chercher du code à ajouter pour voir les données entre temps ou jusqu'à ce que quelqu'un les affiche.

modifier

Cela peut aider;

Changing ActionExecutingContext values in Custom Filter Attribute

+0

solution hmm..the vous semble être lié à autre chose. Quelqu'un d'autre a d'autres idées? – Kyle

Questions connexes