在我的应用程序中,在我的所有页面上,我需要知道用户是否已登录,以及(如果是)用户名。
为方便起见,我一直包括System.Web.Mvc
并将构造函数中的Controller
传递给我的基类PageViewModel
,以便我可以设置模型的UserIsLoggedIn
和LoggedInUsername
基于控制器。我没有在ViewModel
中维护对控制器的引用,因此它仅在构造函数中使用。
这是一种常见做法吗?如果没有,您如何从控制器的上下文中填写视图模型?
答案 0 :(得分:1)
要查找用户是否已登录,您无需绕过控制器。
根据您在应用中的位置,您可以使用HttpContext.Current.User
来查找该内容。
特别尝试使用HttpContext.Current.User.Identity.IsAuthenticated
检查他们是否已登录。
并使用HttpContext.Current.User.Identity.Name
获取用户名
当你说“页面”我认为你的意思是...视图中已经有用户对象,你可以简单地说@User.Identity.IsAuthenticated
或@User.Identity.Name