当前位置:  开发笔记 > 编程语言 > 正文

如何在ASP.NET MVC中获取当前用户

如何解决《如何在ASP.NETMVC中获取当前用户》经验,为你挑选了12个好方法。

在表单模型中,我曾经通过以下方式获取当前登录用户:

Page.CurrentUser

如何在ASP.NET MVC中的控制器类中获取当前用户?



1> Haacked..:

如果需要从控制器中获取用户,请使用UserController 的属性.如果您从视图中需要它,我会填充您特别需要的内容ViewData,或者您可以只调用User,因为我认为它是属性ViewPage.


是的,您可以使用它,"嗨,@ User.Identity.Name!" 在cshtml中.
"或者你可以调用User,因为我认为它是ViewPage的属性" - 所以你的意思是当你在视图中时使用Page.user?

2> 小智..:

我发现User有效,即User.Identity.NameUser.IsInRole("Administrator").


只是为了补充一点,如果你在一个表单之外的类中工作,你需要`Imports System.Web`并进一步使用`HttpContext.Current.User.Identity.Name`进行限定,或者直接符合条件使用完整语法:`System.Web.HttpContext.Current.User.Identity.Name`

3> dove..:

试试HttpContext.Current.User.

Public Shared Property Current()As System.Web.HttpContext System.Web.HttpContext的
成员

摘要:
获取或设置当前HTTP请求的System.Web.HttpContext对象.

返回值:
当前HTTP请求的System.Web.HttpContext


我相信你们两个正在谈论两件不同的事情.System.Web.HttpContext和静态属性:System.Web.Mvc.Controller.HttpContext(其中没有"Current"属性.
显然,HttpContext没有名为"Current"的属性.

4> radbyx..:

您可以在ASP.NET MVC4中获取用户的名称,如下所示:

System.Web.HttpContext.Current.User.Identity.Name


如果你得到这个错误``System.Web.HttpContextBase'不包含'Current'的定义,并且没有扩展方法'Current'接受类型'System.Web.HttpContextBase'的第一个参数'可以找到`,我会建议像这样进行绝对调用,`System.Web.HttpContext.Current.User.Identity.Name`.

5> 小智..:

我意识到这已经很老了,但我刚刚开始使用ASP.NET MVC,所以我想我会坚持下去:

Request.IsAuthenticated 告诉您用户是否经过身份验证.

Page.User.Identity 为您提供登录用户的身份.



6> Sean..:

我用:

Membership.GetUser().UserName

我不确定这会在ASP.NET MVC中有效,但是值得一试:)


这实际上会产生数据库请求.HttpContext.Current.User没有.

7> 小智..:

登录用户名: System.Web.HttpContext.Current.User.Identity.Name



8> 小智..:

为了在过滤目的中引用在ASP.NET MVC 4中内置的简单身份验证创建的用户ID(如果您首先使用数据库而实体框架5生成代码优先绑定并且您的表的结构是如此你可以使用那个用户ID的外键)

WebSecurity.CurrentUserId

一旦添加了using语句

using System.Web.Security;


不幸的是,这似乎不再适用于MVC 5.不确定为什么= /
只有`System.Security.Principal.WindowsIdentity.GetCurrent().Name`在`MVC 5`中起作用.但是,这会使用用户名提取域名.即域\用户名

9> 小智..:

用户名:

User.Identity.Name

但是,如果您只需要获取ID,则可以使用:

using Microsoft.AspNet.Identity;

因此,您可以直接获得用户ID:

User.Identity.GetUserId();



10> Raj Baral..:

我们可以使用以下代码来获取当前在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'



11> 小智..:

这个页面可能是你要找的:
在MVC3中使用Page.User.Identity.Name

你只需要User.Identity.Name.



12> Clay Smith..:

使用System.Security.Principal.WindowsIdentity.GetCurrent().Name.

这将获得当前登录的Windows用户.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有