我创建了一个运行完美的网站。但我有一个问题是有两个文件夹,分别称为user
和admin
。两个文件夹都包含一个home.aspx文件。假设您是用户,而不是管理员,并且您使用用户名和密码登录。
给定这样一个URL:http:localhost:8080/user/home.aspx
,假设您转到地址栏并键入admin
而不是user
,这意味着您可以使用会话访问管理页面。
如何阻止普通用户访问管理页面?
登录时,应该设置一个标识用户类型的标志。在每个需要登录的页面上,您可以检查当前登录的用户是否是您希望允许访问该页面的用户类型。
因此,在admin/home.aspx上,psuedo代码:
if (!LoggedInUser.IsAdmin)
Redirect("Not Allowed");
在user/home.aspx上:
if (LoggedInUser == null)
Redirect("Not Allowed");
有很多方法可以做到这一点,这取决于您处理用户的方式。这里有一个例子。
最简单的入门方法是使用ASP.net成员资格和角色系统,该系统允许您根据登录用户定义文件夹级别的权限,以及更多功能。
这些视频将帮助您开始:http://www.asp.net/web-forms/videos/authentication
当用户(非管理员)登录时,在会话中设置一个用户角色:
例如:
在会话中设置isAdmin=false
现在在管理页面的开头:
if( isAdmin is false ) {
// Redirect to any other page or error page
}
// Other admin content