成功登录后获取用户名称和身份验证。

3

我正在使用ASP.NET Identity 2.0。

登录成功后,我希望获取成功登录用户的用户名和身份标识。

我尝试了以下方法,但没有成功:

If IsValid Then
Dim manager = Context.GetOwinContext().GetUserManager(Of ApplicationUserManager)()

Dim signinManager = Context.GetOwinContext().GetUserManager(Of ApplicationSignInManager)()

Dim result = signinManager.PasswordSignIn(UName.Text, Password.Text, RememberMe.Checked, shouldLockout:=False)

        Select Case result

            Case SignInStatus.Success

尝试在SignInStatus.Success之后执行此操作。
 Dim usid = signinManager.GetVerifiedUserId

或者

Dim usid =User.Identity.Name

或者

Dim usid =  User.Identity.GetUserId

我可以在重新加载页面时获取用户ID和名称。但是我尝试通过编程方式重新加载页面时遇到了问题。

Response.Redirect(Request.RawUrl)

或者
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "reload", "reloadPage()", True)

我做错了什么?注意:我在这个页面上使用jQuery Mobile。
2个回答

0

我决定使用一些常识而不是与代码或API斗争。(时间也很重要!) 一旦用户成功登录(Case SignInStatus.Success),那么为什么要挑剔呢?我通过使用他输入的用户名获取这个特定的用户。

Dim thisUser = manager.FindByName(UName.Text)

然后通过其他方式获取信息

Dim thisUserId As String = thisUser.Id.ToString
Dim thisUserEmail As String = thisUser.Email
etc. etc.

0

只有在用户登录时才设置用户信息。每次加载事件时,您应该获取用户ID。如果您不使用会话或视图状态,请确保在!IsPostback()块之外编写代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接