好的,我已经搜索过该网站以及寻找无效答案的其他人。
我们的新网站附带管理部分,允许所有成员访问此管理部分中的某些页面。
但是,只允许3个访问所有页面。
我正在尝试使用登录页面将所有用户带到管理部分,其中包含感兴趣的项目菜单。
我们的目标是,当用户访问此部分并点击他们无权查看的项目时,他们会被重定向回欢迎页面。
更好的选择当然是一条消息,“您无权查看此页面”。
是否有我可以修改的链接或示例代码来帮助我完成此任务?
我下面的代码无效。
它将我引导到管理部分就好了。然后在每个链接的page_load事件中,我会使用会话来尝试限制用户。
示例:如果会话(“管理员”)<>那么真的 的Response.Redirect( “home.aspx”) 结束如果
但并不限制任何人查看屏幕上列出的任何链接。
Sub CmdLogin_Click(ByVal Sender As Object, ByVal E As EventArgs) Handles CmdLogin.Click
Dim StrUser As String, StrPass As String
Dim BValid As Boolean
Dim Conn As OleDbConnection
Dim Cmd As OleDbCommand
Dim rs As OleDbDataReader
Dim StrSQL As String
' We will request all variables from our form with this.
'Protect against SQL Injection
StrUser = Replace(txtUser.Text, "'", "''", 1, -1, 1)
StrPass = Replace(txtPass.Text, "'", "''", 1, -1, 1)
' This is our boolean variable for validation purposes set to true if valid user
BValid = False
' Initialize Database Connection
Conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("App_Data\Members.mdb"))
' Create Select Command
StrSQL = "SELECT Access_Level, myEmail,UserPassword FROM tblUsers WHERE myEmail='" & StrUser & "' AND UserPassword = '" & StrPass & "'"
'Response.Write(StrSQL)
'Response.End()
Cmd = New OleDbCommand(StrSQL, Conn)
Conn.Open()
rs = Cmd.ExecuteReader()
' This acts like the (Not RecordSource.Eof) in ASP 3.0
While rs.Read()
If rs("Access_Level") = "1" Or rs("Access_Level") = "2" Then
Session("Admin") = True
Response.Redirect("admin.aspx")
'Response.Write(StrPass)
'Response.End()
Dim redirectTo As String = Trim(Session("RedirectTo"))
BValid = True
Else
End If
End While
' Don't forget this
Conn.Close()
' This handles all response per validation
' If validated it goes to admin.aspx page
If BValid = True Then
Session("userid") = StrUser
Dim redirectTo As String = Trim(Session("RedirectTo"))
If redirectTo <> "" Then
Response.Redirect(redirectTo)
Else 'They just got in without trying to go to a restricted page
Response.Redirect("admin.aspx")
End If
ElseIf BValid = False Then
lblError.Text = "Login failed: Please try again."
End If
End Sub
非常感谢任何帮助。
答案 0 :(得分:1)
你不需要在这里尝试的体操。考虑使用成员资格,角色和buildin .net功能来限制对特定文件夹/页面的访问。
请查看我的一篇文章,了解如何轻松完成此任务:
How to restrict unlogged unauthorized users from viewing web pages