Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 获取aspnet mvc成员资格中当前登录的用户ID_Asp.net_Asp.net Mvc - Fatal编程技术网

Asp.net 获取aspnet mvc成员资格中当前登录的用户ID

Asp.net 获取aspnet mvc成员资格中当前登录的用户ID,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我正在尝试显示我的应用程序“学校”的用户列表,当管理员登录时,他可以查看列表中的所有用户,但当学校校长登录时,他应该只获得学校的用户,所以我想先获取当前loggedIn userId,然后通过该userId我将获得schoolId,因为userId是school表中的外键……一旦我获得schoolId,我就可以显示该学校的成员 但我的问题是如何获取当前loggedIn的用户ID。我正在使用MVC1.0 Asp.Net--“成员资格” 如果我上面的逻辑是错误的,那么请告诉我另一个好主意,这样校长只

我正在尝试显示我的应用程序“学校”的用户列表,当管理员登录时,他可以查看列表中的所有用户,但当学校校长登录时,他应该只获得学校的用户,所以我想先获取当前loggedIn userId,然后通过该userId我将获得schoolId,因为userId是school表中的外键……一旦我获得schoolId,我就可以显示该学校的成员

但我的问题是如何获取当前loggedIn的用户ID。我正在使用MVC1.0 Asp.Net--“成员资格”


如果我上面的逻辑是错误的,那么请告诉我另一个好主意,这样校长只能看到他的用户列表。

简单的解决方案 对于您描述的场景,您只能通过使用存储在HttpContext.Current.Identity中的数据检索用户信息来实现这一点。例如,如果HttpContext.Current.Identity.Name是用户名,则您将使用该值检索校长的用户数据,该数据应包括可用于定位适当学校的用户ID

替代解决方案 您可以考虑将学校ID存储在用户的配置文件中,以便更容易访问。

基于此,J.Pabro Frn AnnDEZ的回答可以获得当前用户的用户ID,其代码如下:

//It will only be a Guid if you are using SQL Server as the DB as oppose to MySQL
Guid userGuid = (Guid)Membership.GetUser().ProviderUserKey;

这是我尝试过的最简单的方法

您必须包括
Microsoft.AspNet.Identity

using Microsoft.AspNet.Identity;
然后像这样使用它

var userId = User.Identity.GetUserId().ToString();

好的,thx我是个新手,但现在我还有一个疑问,我如何使用“HttpContext.Current.Identity.Name”检索用户数据。如果我使用自己的会员控制器,那么我会进行查询,但我使用的是aspnet会员资格,那么如何做到这一点呢?