Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Can';无法在登录操作中获取成员身份用户名_Asp.net Mvc_Vb.net_Asp.net Mvc 3_Asp.net Membership - Fatal编程技术网

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。