Question

J'ai écrit une classe d'extension pour personnaliser mon AuthorizeAttribute pour mes méthodes d'action et je voudrais pouvoir injecter des messages dans mon point de vue quand 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?

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 essayé de placer mon ViewData [ « Message »] élément de collection ci-dessus l'appel pour changer la vue sans succès.

Était-ce utile?

La solution

Avez-vous essayé;

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

Je ne sais pas comment ajouter le ViewData mais cela vous obtenir au contrôleur non autorisé au moins.

Je vais continuer à chercher du code pour ajouter à afficher des données dans le temps moyen ou jusqu'à ce que quelqu'un expédie.

modifier

Cela peut aider;

Modification des valeurs ActionExecutingContext filtre attribut personnalisé

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top