使用错误代码自动将用户重定向到登录页面

时间:2012-04-30 18:05:15

标签: asp.net ajax http-status-codes

我有几个使用Asp.Net页面的AJAX请求调用的Web服务。如果用户的授权失败,我想将他重定向到登录页面。

我面临的问题是我必须在AJAX请求的errorHandler函数中手动重定向用户。

我想知道是否有一种方法可以从我的webserivce(我不知道哪个)中使用正确的错误代码抛出HttpException,以便浏览器理解响应并将用户重定向到登录页面?

我在服务调用中尝试throw new HttpException(401,"Unauthorized access request);,但我的errorHandler处理此异常,浏览器不会将用户重定向回登录页面。

另外我在考虑是否可以使用HttpModule实现这一点,这是一个更好的解决方案而不是在服务构造函数中进行授权检查吗?

- 更新 -

添加HttpContext.Current.Response.RedirectLocation = "login.aspx";HttpContext.Current.Response.StatusCode = 307;后,它现在给我一个错误"Resource cannot be found"。这是它在RequestedURL中显示的内容:/Web/Services/svcSomething.asmx/login.aspx

如何告诉浏览器重定向位置是新页面而不是webmethod?

1 个答案:

答案 0 :(得分:1)

IMO - 您需要在服务器端处理错误(401)&将用户重定向到登录页面。由于您在服务器端没有任何处理程序,因此错误将作为响应传递给客户端。所以你看到客户端的代码重定向用户......