【问题标题】:How can I get CURRENT USERNAME in membership asp.net 2008如何在会员 asp.net 2008 中获得 CURRENT USERNAME
【发布时间】:2010-10-18 18:43:07
【问题描述】:

我在 asp.net 2008 中使用会员资格。我建立了一个登录系统,其中包含一些卷......等等

我有一个数据库和表,KEY 是“用户名”,现在我想知道如何获取登录成员的用户名?

例如: 我以 TURKI 身份登录 我想获取用户名 TURKI

我真的需要帮助......

谢谢,

【问题讨论】:

    标签: asp.net logging asp.net-membership


    【解决方案1】:
    User.Identity.Name
    

    用户是页面的一个属性。如果需要在别处访问,可以使用:

    HttpContext.Current.User.Identity.Name
    

    【讨论】:

    • 谢谢,我试试 User.Identity.Name,没关系!真的谢谢!
    • 从我的本地 PC 浏览到页面时,上述两种方法在 Intranet 环境中都可以正常工作 - 但是 - 在登录到我们的 Windows 2003 终端服务器时似乎都不起作用。
    • @John 你对 Intranet 环境是什么意思?当您谈论行为上的差异时,我会猜测并假设您不是在谈论使用 sql 成员资格提供程序,而是在使用集成身份验证。在这种情况下,我首先要检查的是该服务器是否允许匿名用户。如果没有,请发布更多详细信息,如果它很长,您可能想发布一个单独的问题 - 在这种情况下给我一个链接(尽管在我再次检查之前可能会有其他人回答它......)
    【解决方案2】:

    Context.User.Identity.Name

    【讨论】:

      【解决方案3】:

      您可以使用此处描述的 Membership.GetUser() 方法:

      http://msdn.microsoft.com/en-us/library/system.web.security.membership.getuser.aspx

      此外,如果您确实获得了 MembershipUser,您还可以获得唯一标识用户的“ProviderUserKey”,可能将其用作您的表格的 FK,这样您的用户就可以更新他们的用户名,而无需更改所有表中的键。

      【讨论】:

      • 是的,但如果用户名是唯一需要的,您可以通过使用此线程中的其他答案来避免往返数据库。
      【解决方案4】:

      使用 MVC 时对 Freddy 答案的修改 - 必须使用:

      HttpContext.User.Identity.Name
      

      略有变化,但我想我会发布它,以防其他人尝试在 MVC 中执行此操作遇到同样的问题。

      【讨论】:

        猜你喜欢
        • 2011-01-16
        • 2019-12-13
        • 2011-01-26
        • 1970-01-01
        • 2011-08-09
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 2017-04-03
        相关资源
        最近更新 更多