好吧,我很難過。這裏是場景: 我有一個.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(我嘗試過)。
任何想法? 在此先感謝。
你看過p3p標題嗎? – 2012-03-28 21:47:40