首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用asp.net Identity在登录时获取UserId?

如何使用asp.net Identity在登录时获取UserId?
EN

Stack Overflow用户
提问于 2016-09-18 06:01:43
回答 1查看 464关注 0票数 0

我希望获得成功登录的用户的UserId,这样我就可以将其写入带有时间戳的数据库,以便进行审计。这是来自Login cs文件的代码片段

代码语言:javascript
运行
复制
if (Page.IsValid)
{
// Validate the user password
var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>();

var result = signinManager.PasswordSignIn((this.LoginView1.FindControl("username") as TextBox).Text, (this.LoginView1.FindControl("password") as TextBox).Text, (this.LoginView1.FindControl("RememberMe") as CheckBox).Checked, shouldLockout: false);

switch (result)
{
case SignInStatus.Success:
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
break;

我试着添加

代码语言:javascript
运行
复制
string thisuser = User.Identity.GetUserId().ToString();

而且还

代码语言:javascript
运行
复制
string thisuser = System.Web.HttpContext.Current.User.Identity.GetUserId().ToString;

在重定向之前,但在每种情况下,它都返回空值。如果不是在这个Login方法中,我实际上可以从哪里获得用户in?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-18 09:20:07

您总是可以通过名称找到您的用户。由于登录成功,因此使用UserName没有任何问题。

代码语言:javascript
运行
复制
var userName = ((this.LoginView1.FindControl("username") as TextBox).Text;

//...

switch (result)
{
    case SignInStatus.Success:
        var loggedInUser = manager.FindByName(userName);

        //Do your log with loggedInUser!

        IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
        break;
    //...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39552130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档