我如何在使用asp.net身份登录时获得UserId



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

中的代码片段
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;

我试着添加

string thisuser = User.Identity.GetUserId().ToString();

string thisuser = System.Web.HttpContext.Current.User.Identity.GetUserId().ToString;

在重定向之前,但在每种情况下它返回一个空值。如果不在这个Login方法中,我可以从哪里获得userid ?

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

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;
    //...
}

相关内容

  • 没有找到相关文章

最新更新