Csharp/C#教程:在ActionResult方法之外找到用户分享


在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

(0)
上一篇 2022年1月19日
下一篇 2022年1月19日

精彩推荐