2011-04-26 83 views
0

如何通知用户他没有访问页面的权限?如何通知用户他没有访问页面的权限?

我已经开始是,我犯了一个错误页面“没有权限”的消息和用户会被重定向,如果他没有这个页面的权限。

我不知道这是官方还是最好的方式。

另一个地方,我应该在UserControl案例中做什么,例如,当我有一个用户控件来浏览员工,而且我不想每次都阻止用户使用用户控件时。我宁愿从一个地方处理权限(在用户控制的代码中)。

任何想法将approciated。

谢谢。

+0

您使用表单身份验证吗? – 2011-04-26 08:11:34

+0

@Muhammad Akhtar:是的。 – Homam 2011-04-26 08:12:25

回答

2

我会建议你做一个自定义页面和用户重定向到该网页,如果该用户是不是在一定的作用...

放入母版页此条件:

if (!(HttpContext.Current.User.IsInRole("Admin")) 
{ 
    Response.Redirect("UnAuthenticatedUser.aspx"); 
} 
1

你有许多选择,包括:

选项1:重定向用户到你为这样的目的创建了一个网页..

Response.Redirect("ErrorPage.aspx"); 

选项2:抛出一个异常,然后以适当的方式处理它..

throw new Excepion("Exception Message"); 

我usualy设置Visible属性为控制该用户没有对他们的权限虚假的价值

1

可以使用授权部在web.config

+0

你不会得到没有细节的投票ups。 – 2011-04-26 08:27:06

1

这将完全取决于您的权限如何细粒度的。根据权限设置,有时在其他时间显示整个页面可能没有意义,您需要禁用和/或进行只读和/或隐藏部分UI。例如,可以说,有两个权限,查看用户的详细信息添加/编辑用户详细信息。因此,如果查看权限不存在,然后导航到用户详细信息页面,则应将用户重定向到常见错误页面,指出“权限不足”等内容。另一方面,如果查看权限存在但没有编辑权限,则可以看到用户详细信息,但编辑/侦测等按钮/链接应该隐藏/禁用(或者可以以只读格式显示用户详细信息等)。

通常情况下,我宁愿在登录获取整个用户权限集,并将其缓存到应用广泛的上下文类(一般用户特定的上下文得到由会话状态的支持)。权限集将具有检查特定权限的方法。然后,基页(所有页面将被从一个共同的基页衍生 - 中间基页可能用于不同的关注)将检查是否为页查看权限的情况下(经由感兴趣的页覆盖提供一个虚拟方法获得许可),如果没有,那么用户会被重定向到常见的错误页面。根据权限调整特定的用户界面留给各个页面(尽管可能会出现这样的情况,页面可能具有公共模板,甚至可能通过另一个基本页面共享该段代码)。

相关问题