用户身份验证在Safari中不起作用

时间:2013-04-30 21:07:15

标签: c# asp.net c#-4.0

我在断点上有这个代码,它可以在除Windows上的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();
         }
    }
}

1 个答案:

答案 0 :(得分:2)

也许是一个迟到的答案,但我遇到了这个问题。我通过在web.config中的forms-tag中添加cookieless =“UseCookies”来解决它。当您在Mac上的内置应用中使用iOS或Safari中的Chrome时,会删除身份验证Cookie。

这只发生在NET4.0中,如果升级到NET4.5就可以解决。

有关详细信息,请阅读以下文章: http://www.hanselman.com/blog/FormsAuthenticationOnASPNETSitesWithTheGoogleChromeBrowserOnIOS.aspx