0

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

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

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

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

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

- 更新 -

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

我如何告诉浏览器重定向位置是一个新页面而不是 web 方法?

4

1 回答 1

1

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

于 2012-04-30T18:17:05.697 回答