从ASP.Net获取UserID登录控件LoggedIn事件
在ASP.Net中,我试图在Login控件的LoggedIn事件中获取刚刚登录的用户的UserId(即用户GUID).也就是说,我希望在用户移动到下一页之前抓取UserId.这是我正在使用的代码:
Protected Sub Login1_LoggedIn(ByVal sender As Object,_ ByVal e As System.EventArgs) Handles Login1.LoggedIn Dim UserId As String UserId = Membership.GetUser.ProviderUserKey.ToString() End Sub 但是,我得到一个“对象引用没有设置为对象的实例”错误.当我在后续页面中使用它时,当登录用户访问这些页面时,相同的代码也能正常工作. 解决方法
ScottGu解决了这个问题,正如在ASP.NET论坛上的
this blog post中所解释的那样:
如果您将代码更改为: Dim UserId As String UserID = Membership.GetUser(Login1.UserName).ProviderUserKey.ToString() 它应该工作正常.调用Membership.GetUser而不将Username作为参数传递将期望获取“当前”登录用户.当然,由于上述原因,由于尚未填充User对象,因此失败.通过将Login控件的UserName属性作为参数传递给GetUser()方法,您可以显式强制Membership.GetUser方法从用户存储(即数据库)中检索名称指定的用户.这可确保Membership.GetUser方法返回有效的MembershipUser对象,该对象允许您访问ProviderUserKey属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 什么是适当的时间为ViewData,ViewBag,会话,
- asp.net – 如何在不使用bin目录的情况下加载卸载ASPNET运行
- ASP.NET优化不会将LESS转换为CSS
- asp.net-mvc – 在asp.net mvc应用程序中防止多个POST
- oauth-2.0 – 使用DotNetOpenAuth创建OAuth 2.0服务提供程序
- TFS 2015构建:是否可以在存储库映射中使用变量?
- .NET Core中Object Pool的简单使用
- ASP.Net MVC:用路由重写
- 使用ASP.Net Core MVC和ASP.Net Web Api在Angular2 App中进
- asp.net – 如何让Sitecore(和我的浏览器)使用Print布局?
- asp.net-mvc – ASP.Net MVC路由遗传URL将查询字
- asp.net – 使用itemtemplate动态地将列添加到Gr
- asp.net-mvc – 为什么删除:ASP.NET MVC CheckB
- 将额外的信息与ASP.NET MVC成员关联
- asp.net-mvc – MVC项目架构支持模块
- asp.net – 是否可以访问配置文件而不更新LastAc
- 从asp.net中的gridview获取已检查的行
- asp.net-mvc – 我在MVC 5 Visual Studio 2013中
- asp.net-mvc – 如何在没有模型的情况下为@ Html
- asp.net-mvc – 在stackoverflow.com上永不过期的