【问题标题】:ASP.net Authentication on Generated Link生成的链接上的 ASP.net 身份验证
【发布时间】:2019-08-22 18:53:45
【问题描述】:

我们的一个 ASP Web 应用程序有一个按钮,它会生成一个指向表单的过期链接。我们注意到任何拥有上述链接的人都可以查看该表格。我正在研究一种在打开链接时检查最终用户是否获得授权的方法。在他们查看链接之前询问他们的用户名/密码。

我的生成链接的子:

Protected Sub ButtonLink_Click(sender As Object, e As EventArgs)

    Dim strSQL As String = ""
    Dim wapguid As String = ""
    Dim cmd As New SqlCommand

    wapguid = System.Guid.NewGuid().ToString("N")

    strSQL = "INSERT INTO [WapCustomerAccess] (wapid, wapguid, expires, generatedBy) values (@wapid, @wapguid, @expires, @generatedBy)"

    cmd.CommandType = CommandType.Text
    cmd.CommandText = strSQL

    cmd.Parameters.AddWithValue("@wapid", WAPID)
    cmd.Parameters.AddWithValue("@1", wapguid)
    cmd.Parameters.AddWithValue("@generatedBy", Session.Item("UserFullName"))
    cmd.Parameters.AddWithValue("@expires", Date.Now.AddDays(31).ToString)

    Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings("cnnCFHSWAP").ConnectionString
    Dim con As New SqlConnection(strConnString)
    cmd.Connection = con

    Try
      con.Open()
      cmd.ExecuteNonQuery()
    Catch ex As Exception
    Response.Write(ex.Message & "<br />")
    Finally
      con.Close()
      con.Dispose()
    End Try

    Dim t As New TextBox()
    t.Text = "http://wap-test.cfhs.local/secure/waplink.aspx?SSL=true&hash=" & WAPID & "&guid=" & wapguid & "&expires=45&suid=05A2FF&salt=x00FF&enc=true"
    t.ID = "txtLink"
    t.Width = 800
    t.ReadOnly = True
    t.BackColor = Drawing.Color.SeaShell

    PanelLink.Visible = True
    PanelLink.Controls.AddAt(0, t)
    PanelLink.Controls.Add(New LiteralControl("<br />"))

End Sub

【问题讨论】:

  • 当我转到一个页面但需要登录时,我会得到一个这样的 URL:https://mywebsite.com/log-in.aspx?ReturnUrl=%2fadmin%2f。尝试类似的东西。使用您为该用户创建的查询字符串发送到登录页面。 (?)

标签: asp.net vb.net security


【解决方案1】:

您需要在生成的链接中引用的应用程序中限制对waplink.aspx 的访问。根据该应用程序,您会找到合适的教程来设置身份验证/授权,例如 [1]。

[1]https://weblogs.asp.net/gurusarkar/setting-authorization-rules-for-a-particular-page-or-folder-in-web-config

【讨论】:

  • 啊好的,我明白了。我现在正试图弄清楚如何限制对包含 waplink.aspx 的文件夹(称为“私人”)的访问,要求所有用户输入他们的用户名和密码才能打开。我尝试在 Web.config 中使用 location path="private" 这样做,但没有成功。
  • 应用中是否已经设置了通用授权?你试过here的提示了吗?
猜你喜欢
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多