重定向如何在ASP.Net MVC中工作?瞭解ASP.Net中的重定向MVC
我複製並修改了使用DotNetOpenId通過OpenID登錄的code bit from Scott Henselman's blog。調試,我發現執行此代碼段時:
// Stage 2: user submitting Identifier
var openId = Request.Form["openId"];
new OpenIdRelyingParty().CreateRequest(openId).RedirectToProvider();
throw new Exception("Should never get here");
我永遠不會到達throw子句,而是繼續進行重定向。這是如何運作的?
然後,當我得到的OpenID提供商的響應,我調試通過這個代碼段:
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
FormsAuthentication.RedirectFromLoginPage(response.ClaimedIdentifier, false);
// am I supposed to reach this line? What should I return here?
// (The method expects a View to be returned)
而且我發現,調用FormsAuthentication.RedirectFromLoginPage()不會返回,我需要從Action返回一些內容。我應該回到這裏?
我發現FormsAuthentication.RedirectFromLoginPage()不會引發異常,而是執行後會繼續執行。什麼會造成這種情況? – ripper234 2010-01-02 21:20:14
嗯...在這種情況下,該方法可能會設置Response.RedirectLocation屬性並返回,這將導致重定向但不是異常,從而允許執行繼續。 – 2010-01-02 23:05:55
但是我應該從控制器操作返回什麼? – ripper234 2010-01-05 22:05:37