2011-05-08 104 views
2

我在我的asp.net web应用程序的一些.aspx页,只有管理员只能看到一些.aspx页,所有用户都可以看到。我如何限制普通用户访问用于管理员的页面?限制访问某些.aspx页

更多了,我不实现从asp.net我的意思是说我正在使用会话和标志变量实现自己的认证授权。我如何限制内容给依赖于这种情况下的权限的用户?

回答

2

我可能会创建一个自定义功能,当然是公开的方法,其中包含基于[如你所提到的,你不想跟asp.net的会员功能去]允许拒绝角色的所有逻辑用户访问页面。此方法将检查用户是否有资格访问该页面,以获得更好的逻辑,您可以在web.Config中保留所有页面的密钥。

您可以创建在

<appsetting> 


<add key="Page1" value="ViewOrders.aspx"/> 
<add key="Page2" value="DeleteOrders.aspx"/> 

现在的关键,你可以遍历的页面名称键值的方法创建一个用于/ foreach循环。我之所以这么说,是因为稍后添加页面并相应地为其分配角色会更容易。

编辑

也许,你想看看这个http://mywsat.codeplex.com/

+0

所有页面的关键是什么?你能为我详细说明吗? – 2011-05-08 21:05:20

+2

@ user653622我编辑了我的答案。 – Chris 2011-05-08 21:11:48

+0

@ user653622我已经添加了一个链接到我的答案,我发现它会对你有用。 – Chris 2011-05-08 21:19:01

8

把这些页面在自己的目录,并使用一个web.config此目录中,以限制对它们的访问。

<configuration> 
    <system.web> 
     <authorization> 
     <allow roles="Admins"/> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</configuration> 

不要重新发明轮子!

+0

+1“不要重新发明轮子!” – 2011-05-08 21:11:02

+0

@Downvoter - 谨慎评论? – Oded 2011-05-13 20:34:00

1

如果您使用的是自己,你可能希望创建一个自定义角色提供商,并将它从用户返回角色会议上,可能能够再弥合双方的差距......

HTH。

+0

你能为我详细说明你的想法吗? – 2011-05-08 23:06:19

+0

如果启用了某些功能,系统中的角色来自角色提供者。您可以创建一个从System.Web.Security.RoleProvider继承的自定义角色提供程序。在这个类中,当访问用户的角色时,返回从会话中给出的角色。 – 2011-05-09 01:05:24

相关问题