좋아, 나는 곤두박질. 시나리오는 다음과 같습니다. 원격 사이트의 iframe에 .net 4.0 mvc3 앱 (면도기)이 포함되어 있습니다. Chrome과 Firefox를 사용하는 한 보안을위한 표준 멤버십 제공 업체가 있으며 모든 것이 정상적으로 작동합니다. 그러나 내가 ie9 (호환 모드에서 및 호환 모드에서)와 사파리 (5.1.4 만 시도)를 사용할 때 로그인 한 후 다른 컨트롤러에서 Membership.GetUser()에 액세스하려고하면 System.NullReferenceException이 발생합니다..NET에서 Membership.GetUser()는 if9에 포함되어 있고 safari는 iframe에 포함되어 있습니다.
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;
}
}
그래서 모두가 크롬과 파이어 폭스에서 잘 작동하지만 내가 똑같이 달릴 때. ie 또는 safari를 사용하는 코드는 Membership 객체가 null입니다.
나는 그것이 iframe과 어떻게 든 관련되어 있다는 느낌이 들지만, 나는 이제 모든 것을 추측합니다. iframe 외부에서 실행하면; 나는 모든 브라우저에서 실행되는 url을 직접 호출한다는 것을 의미한다.
아이디어가 있으십니까? 미리 감사드립니다.
p3p 헤더를 보았습니까? –