2012-03-28 31 views
4

好吧,我很難過。這裏是場景: 我有一個.net 4.0 mvc3應用程序(剃鬚刀)嵌入在遠程站點的iframe中。我有一個標準的安全性會員供應商,只要我使用Chrome或Firefox,一切都可以正常工作。但是,當我使用ie9(兼容模式)和safari(僅嘗試5.1.4)時,在登錄後嘗試訪問另一個控制器中的Membership.GetUser()時,出現System.NullReferenceException。.NET Membership.GetUser()在IE9中嵌入if9和safari時爲null

我在我的AccountController成功登錄,並在這裏重定向到我TravelController:

public ActionResult LogOn(LogOnModel model, string returnUrl) 
{ 
    try 
    { 
     if (ModelState.IsValid) 
     { 
      if (MembershipService.ValidateUser(model.UserName, model.Password)) 
      { 
       FormsService.SignIn(model.UserName, model.RememberMe); 
       log.Debug("User: " + model.UserName + " logged in."); 
       return RedirectToAction("Travel", "Travel"); 
      } 
     } 
    } 
    catch(.... 

現在應用重定向到其執行以下操作的TravelController:

public ActionResult Travel() 
{ 
    try 
    { 
     string userName = Membership.GetUser().UserName; 
     ... code ... 
    } 
    catch(Exception ex) 
    { 
     throw; 
    } 
} 

所以,這一切工作正常,在Chrome和Firefox,但當我嘗試運行相同的使用ie或Safari的代碼,Membership對象爲null。

我有一種感覺,它與iframe有某種關係,但我現在第二次猜測一切。如果我在iframe之外運行它;這意味着我直接調用它在所有瀏覽器中運行的url(我嘗試過)。

任何想法? 在此先感謝。

+1

你看過p3p標題嗎? – 2012-03-28 21:47:40

回答

相關問題