【问题标题】:From the controller, how do I get the users [duplicate]从控制器,我如何获得用户 [重复]
【发布时间】:2015-05-21 09:01:18
【问题描述】:

我是 MVC 新手,有一个问题。 Visual Studio 模板创建一个表dbo.AspNetUsers,其中有一个名为Id 的列。从我的控制器中,我想为登录的用户获取该值

    public ActionResult Index ()
    {

        if (!Request.IsAuthenticated) // if not logged in 
        {
            Response.StatusCode = 404;
            return null;
        }
        else
        {
             string thisUserId = ???
             // do something with thisUserId
        }

我查看了源文件,但无法弄清楚我是如何得到它的。

【问题讨论】:

  • 您在使用会员服务提供商吗?

标签: c# asp.net-mvc razor


【解决方案1】:

这适用于我的项目(使用System.Web.Security.SqlMembershipProvider

HttpContext httpContext = HttpContext.Current;
string userName = httpContext.User.Identity.Name;
MembershipUser membershipUser = Membership.GetUser(userName);
object providerUserKey = membershipUser.ProviderUserKey;
string thisUserId = providerUserKey.ToString();

【讨论】:

  • userId 的类型是 nvarchar。为什么要将其转换为 Guid 并再次转换为 string
  • 我怀疑我使用的是较早版本的 Asp.NET Membership,然后将 UserId 存储为 uniqueidentifier。我将把这部分从代码示例中删除。
猜你喜欢
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 2021-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多