在表单模型中,我曾经通过以下方式获取当前登录用户:
Page.CurrentUser
如何在ASP中获得控制器类中的当前用户。净MVC吗?
在表单模型中,我曾经通过以下方式获取当前登录用户:
Page.CurrentUser
如何在ASP中获得控制器类中的当前用户。净MVC吗?
当前回答
为了引用使用ASP中内置的简单身份验证创建的用户ID。如果你使用数据库优先和实体框架5来生成代码优先绑定,并且你的表是结构化的,因此使用userID的外键,这是很有帮助的),你可以使用
WebSecurity.CurrentUserId
一旦你添加了using语句
using System.Web.Security;
其他回答
我知道这真的很旧,但我刚刚开始使用ASP。NET MVC,所以我想我要坚持我的两分:
请求。IsAuthenticated告诉您用户是否通过了身份验证。 identity为您提供登录用户的标识。
HttpContext.Current.User试试。
公共共享财产当前()作为 System.Web.HttpContext System.Web.HttpContext的成员 简介: 获取或设置当前HTTP请求的System.Web.HttpContext对象。 返回值: 当前的System.Web.HttpContext HTTP请求
如果你在登录页面中,以LoginUser_LoggedIn事件为例,Current.User.Identity.Name将返回一个空值,所以你必须使用yourLoginControlName。用户名属性。
MembershipUser u = Membership.GetUser(LoginUser.UserName);
我们可以使用下面的代码在ASP中获取当前登录的用户。Net MVC:
var user= System.Web.HttpContext.Current.User.Identity.GetUserName();
也
var userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; //will give 'Domain//UserName'
Environment.UserName - Will Display format : 'Username'
在IIS管理器的“身份验证”下,禁用: 1)匿名认证 2)表单认证
然后添加以下到你的控制器,以处理测试和服务器部署:
string sUserName = null;
string url = Request.Url.ToString();
if (url.Contains("localhost"))
sUserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
else
sUserName = User.Identity.Name;