2013-04-30 75 views
1

我在斷點上有此代碼,它在每個瀏覽器中工作,除了Windows上的Safari,當我登錄時,它總是顯示用戶未通過身份驗證。用戶身份驗證在Safari中不起作用

我將Safari重置爲默認值。

在我的web.config文件中我添加

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

無法獲得野生動物園的工作。

我沒有指定一個cookie名稱?我在本地主機上運行此操作,然後將其上傳到我的域時出現同樣的問題。

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

也許是一個遲到的答案,但我有這個問題。我通過在web.config中的forms-tag中添加了cookieless =「UseCookies」來解決它。當您在iOS中使用Chrome或Mac中的內置應用程序使用Safari時,auth-cookies被刪除。

這隻發生在NET4.0,並且如果升級到NET4.5就解決了。

欲瞭解更多信息,請閱讀這篇文章: http://www.hanselman.com/blog/FormsAuthenticationOnASPNETSitesWithTheGoogleChromeBrowserOnIOS.aspx