2012-04-30 83 views
0

我有幾個使用Asp.Net頁面的AJAX請求調用的Web服務。如果用戶的授權失敗,我想將他重定向到登錄頁面。使用錯誤代碼自動將用戶重定向到登錄頁面

我面臨的問題是我不得不手動重定向AJAX請求的errorHandler函數中的用戶。

我想知道是否有一種方法,我可以從我的webserivce(我不知道哪個)正確的錯誤代碼拋出HttpException,以便瀏覽器瞭解響應並將用戶重定向到登錄頁面?

我在我的服務調用中試過throw new HttpException(401,"Unauthorized access request);,但我的errorHandler處理這個異常,瀏覽器不會將用戶重定向回登錄頁面。

另外我在想,如果我可以實現這個使用HttpModule,這將是一個更好的解決方案,而不是有服務構造函數的授權檢查?

--Update--

加入HttpContext.Current.Response.RedirectLocation = "login.aspx";HttpContext.Current.Response.StatusCode = 307;後,現在給了我一個錯誤說"Resource cannot be found"。這就是它在RequestedURL中顯示的內容:/Web/Services/svcSomething.asmx/login.aspx

如何告訴瀏覽器重定向位置是一個新頁面而不是webmethod?

+0

有關[ '307'](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8) - 臨時重定向代碼。 –

+0

那麼,仍然瀏覽器不會將用戶重定向到登錄頁面。它顯示了我在errorHandler中的警報。 – Asdfg

回答

1

IMO - 您需要處理服務器端的錯誤(401)&將用戶重定向到登錄頁面。由於您在服務器端沒有任何處理程序,所以錯誤會作爲響應傳遞給客戶端&因此您會看到客戶端上的代碼重定向用戶...

相關問題