【问题标题】:System.Web.HttpCookie Cannot be converted to IntegerSystem.Web.HttpCookie 无法转换为整数
【发布时间】:2014-04-13 19:57:36
【问题描述】:

我可以获得登录用户 ID,但是当我尝试将 cookie 传递到查询中时,我收到了上述错误。如何转换价值?表中值为 (d606e50f-0a5c-42d6-a8eb-4219465e8a5e)

        Dim myObject As MembershipUser = Membership.GetUser()
        Dim UserId As String = myObject.ProviderUserKey.ToString()

        Dim cookieUser As HttpCookie = New HttpCookie("UserId")
        cookieUser.Value = UserId.ToString()
        Response.Cookies.Add(cookieUser)

        Dim DS As DataSet

        DS = U.RunQuery("SELECT [FirstName], [LastName], [Email], [Phone] from aspnet_Users Where @UserId = "(cookieUser))

    FirstNameTextBox.Text = DS.Tables(0).Rows(0)("FirstName")
    LastNameTextBox.Text = DS.Tables(0).Rows(0)("LastName")
    EmailTextBox.Text = DS.Tables(0).Rows(0)("Email")
    PhoneTextBox.Text = DS.Tables(0).Rows(0)("Phone")

谢谢!

【问题讨论】:

  • 您正在寻找字符串连接。

标签: vb.net visual-studio-2010


【解决方案1】:

问题如下

UserId = "(cookieUser)

VB.Net 将其视为一个字符串常量,后跟一个(value),它将其视为字符串的索引。因此它试图将cookieUser 解释为Integer 并失败。看起来您正在尝试在此处连接字符串,如果是,请执行以下操作

UserId = " & cookieUser

请注意,这似乎使您面临 SQL 注入攻击。使用查询构建器并清理输入要比使用原始字符串连接来构建 SQL 查询要好得多

【讨论】:

  • 我尝试改变它并应用我的清理方法,它说“方法或操作未实现。”
  • @Frater 听起来你在运行时遇到了一个新错误而不是编译时错误。您可能需要为此发布一个新 Q。解决它需要更多关于错误发生位置以及异常的堆栈跟踪的信息
猜你喜欢
  • 2018-10-19
  • 2016-05-02
  • 1970-01-01
  • 2011-03-19
  • 2012-03-03
  • 2019-11-25
  • 2011-08-30
  • 2013-11-16
相关资源
最近更新 更多