Asp.net mvc Can';无法在登录操作中获取成员身份用户名
以下是我的登录操作:Asp.net mvc Can';无法在登录操作中获取成员身份用户名,asp.net-mvc,vb.net,asp.net-mvc-3,asp.net-membership,Asp.net Mvc,Vb.net,Asp.net Mvc 3,Asp.net Membership,以下是我的登录操作: Public Function LogOn(ByVal model As LogOnModel, ByVal returnUrl As String) As ActionResult If ModelState.IsValid Then If Membership.ValidateUser(model.UserName, model.Password) Then FormsAuthentication.SetAuthCooki
Public Function LogOn(ByVal model As LogOnModel, ByVal returnUrl As String) As ActionResult
If ModelState.IsValid Then
If Membership.ValidateUser(model.UserName, model.Password) Then
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe)
If Url.IsLocalUrl(returnUrl) AndAlso returnUrl.Length > 1 AndAlso returnUrl.StartsWith("/") _
AndAlso Not returnUrl.StartsWith("//") AndAlso Not returnUrl.StartsWith("/\\") Then
Return Redirect(returnUrl)
Else
' redirect based on whether the user is admin, company owner, or blog owner
Debug.Print(Membership.GetUser.UserName)
当我试着调试变量时,它说,“NullReferenceException,对象引用未设置为对象的实例。”
一分钟前它还在工作!如何获取username变量?谢谢。设置身份验证cookie会将其添加到当前请求的响应中。在将响应发送到客户机,并且客户机在后续请求中发送cookie之前,cookie尚未出现在请求中
好消息是您已经从模型中获得了用户名,因此我建议使用该用户名。设置身份验证cookie会将其添加到当前请求的响应中。在将响应发送到客户机,并且客户机在后续请求中发送cookie之前,cookie尚未出现在请求中
好消息是您已经从模型中获得了用户名,因此我建议您使用该用户名。这很有效,是一个很好的建议。然而,我很好奇为什么它以前工作,突然停止。。。我在使用Membership.GetUser.UserName,它给了我用户名!是否可能cookie已经发送,但随后被清除或更改?我假设这是可能的,但我不确定。谢谢你的帮助,丹。那么,丹,可以从交易中获取用户ID或其他信息吗?或者我只需要使用用户名并创建一个由lamda过滤的新用户对象,以获得具有该用户名的用户实体?这取决于成员资格提供程序,但如果您只是使用默认的ASPNETDB SQL数据库,则始终可以使用指定名称查询用户的数据库。当然,在调用ValidateUser方法时,您已经在查询数据库了。如果用户名/密码表示有效用户,则最好用从数据库中获取用户及其数据的调用来替换,如果用户名/密码无效,则返回null。只有在返回非空值时才设置cookie。这很有效,是一个很好的建议。然而,我很好奇为什么它以前工作,突然停止。。。我在使用Membership.GetUser.UserName,它给了我用户名!是否可能cookie已经发送,但随后被清除或更改?我假设这是可能的,但我不确定。谢谢你的帮助,丹。那么,丹,可以从交易中获取用户ID或其他信息吗?或者我只需要使用用户名并创建一个由lamda过滤的新用户对象,以获得具有该用户名的用户实体?这取决于成员资格提供程序,但如果您只是使用默认的ASPNETDB SQL数据库,则始终可以使用指定名称查询用户的数据库。当然,在调用ValidateUser方法时,您已经在查询数据库了。如果用户名/密码表示有效用户,则最好用从数据库中获取用户及其数据的调用来替换,如果用户名/密码无效,则返回null。仅在返回非空值时设置cookie。