如何在Web应用程序中实现角色

时间:2012-03-27 11:36:18

标签: c# asp.net

我创建了一个完美运行的网站。但我有一个问题是有两个名为useradmin的文件夹。两个文件夹都包含home.aspx文件。假设您是用户,而不是管理员,并且您已使用用户名和密码登录。

根据这样的网址:http:localhost:8080/user/home.aspx,假设您转到地址栏并输入admin而不是user表示您可以使用您的会话访问管理页面。

如何阻止常规用户访问管理页面?

3 个答案:

答案 0 :(得分:3)

登录时,应设置标识用户类型的标志。在需要登录的每个页面上,检查当前登录的用户是否是您希望允许访问该页面的用户类型。

所以在admin / home.aspx上,psuedo-code:

if (!LoggedInUser.IsAdmin)
    Redirect("Not Allowed");

在user / home.aspx上:

if (LoggedInUser == null)
    Redirect("Not Allowed");

有很多方法可以执行此操作,具体取决于您处理用户的方式。可以找到一个示例here

答案 1 :(得分:0)

最简单的开始使用方法是使用ASP.net成员资格和角色系统,它允许您根据登录用户定义文件夹级别权限 - 以及更多功能。

这些视频可以帮助您入门:http://www.asp.net/web-forms/videos/authentication

答案 2 :(得分:0)

当用户(非管理员)登录时,在会话中设置用户角色:

例如:

在会话中设置isAdmin=false

现在在管理页面的开头:

if( isAdmin is false ) {
   // Redirect to any other page or error page
}

// Other admin content