2013-04-30 5 views
1

이 코드는 중단 점에 있으며, Windows 용 Safari를 제외한 모든 브라우저에서 작동합니다. 로그인하면 항상 사용자가 인증되지 않았 음을 보여줍니다.Safari에서 사용자 인증이 작동하지 않습니다.

Safari를 기본값으로 재설정합니다. 내 Web.config 파일에

나는 사파리가 동작하지 않습니다

<authentication mode="Forms"> 
    <forms loginUrl="~/Login.aspx" defaultUrl="~/ToolsHome.aspx" timeout="2880" cookieless="UseCookies" /> 
</authentication> 

을 추가했다.

쿠키 이름을 지정하지 않았습니까? 나는 이것을 로컬 호스트에서 실행하고 나서 내 도메인에 업로드 할 때 동일한 문제가 발생합니다.

if (!User.Identity.IsAuthenticated) 
{ 
    Response.Redirect("Login.aspx"); 
} 
else 
{ 
    if (HttpContext.Current.User.IsInRole("Physician") 
     || HttpContext.Current.User.IsInRole("Staff")) 
    { 
     if (Session["loggedin"] != null) 
     { 
       Session["PatientID"] = Session["loggedin"].ToString(); 
     } 
    } 
} 

답변

2

아마도 늦은 대답이지만이 문제가있었습니다. 나는 cookieless = "UseCookies"를 web.config의 forms-tag에 추가하여 해결했습니다. iOS에서 Chrome을 사용하거나 Mac에 내장 된 앱에서 Safari를 사용하면 인증 쿠키가 삭제됩니다.

이것은 NET4.0에서만 발생하며 NET4.5로 업그레이드하면 해결됩니다.

관련 문제