限制用户查看网站和文件夹

时间:2014-03-26 14:39:42

标签: c# asp.net

我正在使用C#创建一个asp.net网站,我在slq服务器上有一个带有表Users(id, username, password, isAdmin)的数据库。 isAdminint的默认值为0,因此,如果该用户为管理员,则为isAdmin = 1其他isAdmin = 0

我在网站上有一个登录表单,当用户登录时,它会创建Session("admin")Session("user"),具体取决于isAdmin值。

那么,我如何限制Session("user")admin.aspx页面以及网站上传文件夹的访问权限?

我不想在IIS中添加角色管理,因为管理员可以让其他用户加入管理员(将isAdmin更新为1

感谢。

3 个答案:

答案 0 :(得分:3)

不要保持标准用户和& admin在单独的会话变量中。而是创建一个映射到User表的类,并以通用方式在其中存储用户信息。该类的一个属性是.isAdmin(整数或偶数布尔值)。然后你可以简单地查看“admin.aspx”

中的内容
UserInfo objUserInfo = (UserInfo)Session("user");

if (objUserInfo.isAdmin == 0) {
   Response.Redirect("User.aspx");
}

答案 1 :(得分:2)

这个逻辑中的东西:

登录后,首先在session var中保存用户角色。    然后在受限页面的page_load中,检查用户的角色,如果他不是管理员,则将其重定向到使用管理员帐户重新登录。

protected void Page_Load(object sender, EventArgs e)
{
     if(session["role"].ToString().compareTo("admin")==0)
     {
     //load page stuff

     }
     else
     {
         Response.Redirect(your login page);
     }
}

答案 2 :(得分:0)

关闭IIS中的目录浏览。在web.config中添加此项以防止用户浏览文件夹。这将在IIS 7 +

中起作用
<configuration>
 <location path="Secured">
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>
  </location>
</configuration>