いいえ、私は困惑しています。ここにシナリオがあります: リモートサイトのiframeに埋め込まれた.net 4.0 mvc3アプリ(剃刀)があります。私はセキュリティのための標準的なメンバーシップ・プロバイダを持っており、ChromeやFirefoxを使用している限り、すべて正常に動作します。しかし、私がie9(互換モードの両方のモードと互換モードの両方)とサファリ(5.1.4を試しただけです)を使用すると、ログイン後に別のコントローラのMembership.GetUser()にアクセスしようとするとSystem.NullReferenceExceptionが発生します。.NETのMembership.GetUser()if9にはnull、iframeにはsafariが埋め込まれています
So私は自分の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に関連している感がありますが、私は2番目の今、すべてを推測しています。私はiframeの外でそれを実行する場合。つまり、私が試したすべてのブラウザでURLが直接呼び出されるということです。
アイデア? ありがとうございます。
p3pヘッダーを見ましたか? –