我想处理我的应用程序中的场景,如果用户没有查看特定aspx页面的权限,则会弹出错误消息。
我该怎么处理呢?
我应该将用户重定向到特定的错误aspx页面并在那里显示错误吗?
导航回原始页面(上一页)?
什么是解决这个问题的最佳方法?
答案 0 :(得分:1)
重定向是IMO的一个坏主意,它只会让用户感到困惑。在服务器上传输请求(例如Server.Transfer
或类似的;在MVC中,您可能有一个单独的权限错误视图等)。这样,用户可以轻松返回到他来自的地方(而不是在他尝试返回时重定向到循环中),如果他登录错误页面,您只需刷新即可应用新权限。
在HTTP级别,您不应该重定向权限问题。如果用户未登录并允许他登录(例如,对于Windows身份验证很有用),则返回状态代码401
;如果他已登录但没有权限,则返回403
,或者如果您想使用自己的登录表单(和错误消息)。如有疑问,请使用403
。如果有疑问,即使200
也可能也可以。当您发出403
时,某些浏览器可能会完全忽略您的回复。
同样,用户仍然可以使用书签并向朋友发送链接。
答案 1 :(得分:0)
你应该去你的应用程序的主页或主页,并在那里显示错误,因为如果你导航到自定义错误页面,它将使用更少的努力,如果你导航回原始页面,那么用户将认为该应用程序是不能正常工作