Asp.net 网页安全

Asp.net 网页安全,asp.net,security,Asp.net,Security,我有一个ASP.Net网站,它使用成员资格提供程序来管理用户和角色。仅允许角色内的用户访问某些页面。下面的代码是否足以通过简单地键入指向该页面的URL来阻止非角色用户访问该页面?有没有更好的方法来处理这个问题 Private Sub MessageWork_Init(sender As Object, e As EventArgs) Handles Me.Init If Not Roles.IsUserInRole("Practice") Then Response.Re

我有一个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

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

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

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

<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>


.

太好了。谢谢你们两位。