我正在使用 SignalR 处理来自客户端对我的 MVC3 应用程序的点击。
每次用户单击某些内容时,我都需要验证登录的用户。
如果这是在 MVC3 控制器内,我会:
if (User.Identity.IsAuthenticated)
{
string username = User.Identity.Name;
//My code here.
}
但是,此代码执行不在 Controller 类内部。
基本上,如何从控制器外部访问登录的用户名?
基本上,如何从控制器外部访问登录的用户名?
这取决于您想要访问它们的位置。如果您无权访问HttpContext
你总是可以尝试HttpContext.Current.User
并祈祷它不会因某种原因而为空,例如不同的线程或其他原因。这对于依赖于任务和大量异步处理的 SignalR 来说尤其可能。如果它位于 SignalR 的集线器内,您可以访问用户:
public class Chat: Hub
{
public void Foo()
{
string username = Context.User.Identity.Name;
}
}
就我个人而言,我不建议您使用HttpContext.Current
。取决于您到底想要实现什么目标以及我向您保证有更好的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)