2011-05-23 27 views
0

我有一個稱爲SignIn的視圖,其中包含兩個部分視圖進行身份驗證。一個是OpenID,另一個是使用內部帳戶登錄我的網站。MVC 3 FormsAuthentication RedirectUrl和OpenID

OpenID形式的動作轉到OpenIDSignIn()動作,而另一個只是指向SignIn()。除了當用戶點擊鏈接到需要登錄的視圖[授權]等時,一切都很好。

我在QueryString中看到returnUrl,但是此值對當前控制器操作不可用,由於他們將要麼使用OpenID登錄或正常登錄,因此需要調用與這些視圖相關的ActionResult。

只是爲了澄清的RETURNURL是被從FormsAuthentication做RedirectFromLoginPage等時拋出存在並使用一個..

回答

0
public ActionResult SignIn(string returnUrl) 
    { 
     if(!string.IsNullOrEmpty(returnUrl)) 
     { 
      if(UrlUtil.IsLocalUrl(returnUrl)) 
      { 
       Session.Add("ReturnUrl", returnUrl); 
      } 
      else 
      { 
       return RedirectToAction("SignIn", "Account"); 
      } 


     } 
     return View(); 
    } 

這似乎是一個可行的解決方法。但是我討厭會話變量!

相關問題