如果当前用户没有特定页面的权限,应该如何处理?

时间:2015-02-24 16:31:51

标签: c# asp.net

我想处理我的应用程序中的场景,如果用户没有查看特定aspx页面的权限,则会弹出错误消息。
我该怎么处理呢? 我应该将用户重定向到特定的错误aspx页面并在那里显示错误吗? 导航回原始页面(上一页)?
什么是解决这个问题的最佳方法?

2 个答案:

答案 0 :(得分:1)

重定向是IMO的一个坏主意,它只会让用户感到困惑。在服务器上传输请求(例如Server.Transfer或类似的;在MVC中,您可能有一个单独的权限错误视图等)。这样,用户可以轻松返回到他来自的地方(而不是在他尝试返回时重定向到循环中),如果他登录错误页面,您只需刷新即可应用新权限。

在HTTP级别,您不应该重定向权限问题。如果用户未登录并允许他登录(例如,对于Windows身份验证很有用),则返回状态代码401;如果他已登录但没有权限,则返回403 ,或者如果您想使用自己的登录表单(和错误消息)。如有疑问,请使用403。如果有疑问,即使200 也可能也可以。当您发出403时,某些浏览器可能会完全忽略您的回复。

同样,用户仍然可以使用书签并向朋友发送链接。

答案 1 :(得分:0)

你应该去你的应用程序的主页或主页,并在那里显示错误,因为如果你导航到自定义错误页面,它将使用更少的努力,如果你导航回原始页面,那么用户将认为该应用程序是不能正常工作