Obtenir le Nom d'Utilisateur sur l'Action du Filtre
- Je utiliser MVC4 application web avec l'API Web. Je veux créer une action de filtre, et je veux savoir qui de l'utilisateur (un utilisateur connecté) fait l'action. Comment puis-je le faire?
public class ModelActionLog : ActionFilterAttribute
{
public override void OnActionExecuting(SHttpActionContext actionContext)
{
string username = ??
}
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
??
}
}
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer
Vérifier utilisateur authentifié d'abord:
Essayez d'utiliser
Espère que cela fonctionne pour vous
System.Web.Http.Filters.ActionFilterAttribute
alors utilisez simplementHttpContext.Current.User.Identity.Name
pour obtenir le Nom d'Utilisateur surAction Filter
..voir ma mise à jour de réponse,et d'essayer au moins une fois.Peu tard pour une réponse, mais c'est la meilleure solution si vous utilisez HttpActionContext dans votre filtre, Vous pouvez toujours l'utiliser comme mentionné ici:-
Microsoft.AspNet.WebApi.Core
installés afin de voir lesRequestContext
propriétéPeut-être pas la plus jolie de la solution, mais pour l'API Web ActionFilter vous pouvez effectuer les opérations suivantes:
Bien sûr, cela s'applique seulement si votre contrôleurs en fait hériter de ApiController.
C'est ce que vous avez besoin