asp.net中的自定义授权和页面保护

时间:2012-05-18 18:44:22

标签: asp.net webforms

需要解决自定义授权问题。 我的数据库中已经有四个表名为: 1. Usermaster 2.Roles 3.RoleMenu 4.Menu

我已经实现了这个并且它的工作完美。 我现在唯一的问题是,经过身份验证的用户只需在浏览器中输入页面网址即可查看未经授权的页面。

除了表单身份验证和文件夹级别访问之外的任何有用的想法?

1 个答案:

答案 0 :(得分:0)

我有一个与此类似的项目,我似乎无法在任何地方找到代码,因为它已经很久以前了。我记得这个前提。我所做的是我在webconfig中设置了一个密钥,该密钥允许用户名允许在pipedelimited字符串中访问。在代码后面我会拉入该密钥以及尝试访问该页面的用户。然后我会搜索字符串并尝试匹配用户。如果找到匹配页面将加载,如果未找到匹配,则会将它们重定向到一个页面,告诉他们他们没有访问权限以及联系谁来请求访问权限。如果我找到它,我会寻找代码并进行编辑。

修改

WebConfig

<appSettings>
    <add key="Users" value="user1|user2|user3|..." />
</appSettings>

这件作品高于

对于.aspx.vb页面

Dim DomainUserName() As String = Request.ServerVariables("LOGON_USER").Split("\")
    Dim UserName As String = DomainUserName(1)

    Dim Users() As String = ConfigurationManager.AppSettings("Users").ToString.Split("|")

    Dim isAllowedAccess As Boolean = False

    For i As Integer = 0 To Users.Count - 1
        If UserName = Users(i) Then
            isAllowedAccess = True
            Exit For
        End If
    Next

    If isAllowedAccess = False Then
        Response.Redirect("Default.aspx")
    End If

基本上我们的登录是域\用户名,所以我正在做的是使用拆分提取名称。然后我将接受的用户填充到管道上的数组中,并循环搜索匹配。当找到匹配时,它允许他们访问,如果找不到匹配,则将其重定向回主页。