User.Identity.Name 有啥问题

Posted

技术标签:

【中文标题】User.Identity.Name 有啥问题【英文标题】:what is the issue with User.Identity.NameUser.Identity.Name 有什么问题 【发布时间】:2011-09-01 19:48:43 【问题描述】:

它来自什么命名空间,因为它显示用户在当前上下文中不存在!

这是我的命名空间列表。我应该添加哪一个:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Web.Configuration;
using System.Web.Security;

另外一个问题,这样可以检查登录的人是管理员吗?

 if (Roles.IsUserInRole(User.Identity.Name, "Administrators"))
      

【问题讨论】:

这段代码是在页面还是类库中?在类库中,用户应该在 HttpContext.Current 代码在一个简单的类里面..我应该把HttpContext放在哪里? 【参考方案1】:

您需要以下命名空间:

using System.Security.Principal;

检查角色的最简单方法是:

User.IsInRole("Administractor");

【讨论】:

【参考方案2】:

如果你在一个代码库而不是你需要的网页本身:

HttpContext.Current.User

【讨论】:

以上是关于User.Identity.Name 有啥问题的主要内容,如果未能解决你的问题,请参考以下文章

为啥 SignalR Context.User.Identity.Name 为空?

HttpContext.Current.User.Identity.Name 为空

User.Identity.Name 返回的是 UserName 而不是 Name

HttpContext.Current.User.Identity.Name 为空

内置帮助器将 User.Identity.Name 解析为 Domain\Username

使用 .mapuniquejsonkey 时,@context.user.identity.name 为空