【问题标题】:Web page security网页安全
【发布时间】:2015-11-28 08:20:01
【问题描述】:

我有一个使用 Membership Provider 来管理用户和角色的 ASP.Net 网站。只有角色内的用户才能访问某些页面。下面的代码是否足以防止不属于该角色的用户通过简单地输入指向该页面的 URL 来访问该页面?有没有更好的方法来处理这个问题?

Private Sub MessageWork_Init(sender As Object, e As EventArgs) Handles Me.Init
    If Not Roles.IsUserInRole("Practice") Then
        Response.Redirect("\Default.aspx")
        Exit Sub
    End If

End Sub

【问题讨论】:

    标签: asp.net security


    【解决方案1】:

    你的方法有效。但是,您可以在根 web.config 中设置权限,也可以从子目录 web.config 文件中设置权限。

    例如,此配置将默认允许任何人访问所有站点;但只有属于Practice 角色的用户才能进入privatefile.aspx。请记住,allowdeny 按出现顺序应用:

    <configuration>
      <system.web>
        <authorization>
          <allow users="*" />
        </authorization>
      </system.web>
    
      <location path="privatefile.aspx">
        <system.web>
            <authorization>
                <allow roles="Practice" />
                <deny users="*" />
            </authorization>
        </system.web>
      </location>
    </configuration>
    

    更多信息请访问msdn

    【讨论】:

      【解决方案2】:

      我建议您在 application_beginrequest 部分下的 global.asax 中添加相同的逻辑集。通过将针对页面的角色列表作为应用程序缓存中的列表保存。您将拥有一个单一的控制点。如果您的代码在母版页中,那么它很好。无需更改任何内容

      【讨论】:

      • 优秀。谢谢你们。
      猜你喜欢
      • 1970-01-01
      • 2011-03-29
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      相关资源
      最近更新 更多