在ActionResult方法之外找到用户
我问过这个问题 。
即使该答案解决了我收到的错误消息..我想找到当前正在使用该应用程序的用户…而不是必须在每个操作方法中写入…
var userIdentity = HttpContext.User.Identity.Name.Split('\')[1].Replace(".", " ");
我希望在任何ActionResult方法之前将它放在控制器类的顶部,这样我就可以在每个操作方法中引用变量而不是如上所示的整行。或者甚至在构造函数中设置它,就像我一样根本不必参考它。
任何帮助表示赞赏。
您可以创建一个Extension方法
public static class ExtensionHelper { public static string UserIdentity(this HttpContext context) { return context.User.Identity.Name.Split('\')[1].Replace(".", " "); } }
在Conttroller中使用
var identity = HttpContext.UserIdentity()
如果它看起来更干净,你可以使用控制器扩展做同样的事情。
public static class ExtensionHelper { public static string UserIdentity(this Controller controller) { return controller.HttpContext.User.Identity.Name.Split('\')[1].Replace(".", " "); } }
在Conttroller中使用
var identity = this.UserIdentity()
如果你使用了一个合适的IoC或DI框架然后有一个Context类,你可以注入,如果有一个用户上下文,就会启动这个状态。 然后,您可以将其注入Controller,而不是尝试扩展控制器。 我个人最喜欢的是AutoFac,但有很多,使用几乎任何DI框架实现这一点相对简单。
上述就是C#学习教程:在ActionResult方法之外找到用户分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1035019.html