ASP.NET窗体身份验证与Windows的Safari [英] ASP.NET Forms Authentication with Windows Safari

查看:162
本文介绍了ASP.NET窗体身份验证与Windows的Safari的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道为什么ASP.NET窗体身份验证不的Windows版Safari工作,或者更好的是,如何得到它的工作?这似乎是一个很奇怪的问题。当我使用一个登录控件(System.Web.UI.WebControls.Login)一切工作正常,但如果我尝试做当我叫FormsAuthentication.RedirectFromLoginPage Safari浏览器自定义窗体身份验证的登录只送我回到登录页面,如果我M未通过身份验证,而其他浏览器登录中的我,送我上我的路。

 保护无效lnkLogin_Click(对象发件人,EventArgs的发送)
{
    如果(Membership.Provider.ValidateUser(txtUsername.Text,txtPassword.Text))
    {
    Session.Clear();
    HttpContext.Current.Response.Cookies.Clear();
    FormsAuthentication.SetAuthCookie(txtUsername.Text,真);
    FormsAuthentication.RedirectFromLoginPage(txtUsername.Text,真);
    }
}


解决方案

尝试要么SetAuthCookie,或RedirectFromLoginPage。重定向需要知道在哪里可以重定向到反正(RETURNURL),这也许就是你的问题。

 如果(的Request.QueryString [RETURNURL]!= NULL)
    {
        FormsAuthentication.RedirectFromLoginPage(someuserid,FALSE);
    }
    其他
    {
        FormsAuthentication.SetAuthCookie(someuserid,FALSE);
        的Response.Redirect(〜/ SomePage.aspx页面);
    }

Does anyone know why ASP.NET Forms Authentication does not work on windows safari, or better yet, how to get it to work? It seems like a very weird issue. When I use a login control (System.Web.UI.WebControls.Login) everything works fine, but if I try to do a custom Forms Authentication login when I call FormsAuthentication.RedirectFromLoginPage safari just sends me back to the login page as if I'm not authenticated whereas every other browser logs me in and sends me on my way.

protected void lnkLogin_Click(object sender, EventArgs e)
{
    if (Membership.Provider.ValidateUser(txtUsername.Text, txtPassword.Text))
    {
    	Session.Clear();
    	HttpContext.Current.Response.Cookies.Clear();
    	FormsAuthentication.SetAuthCookie(txtUsername.Text, true);
    	FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);
    }
}

解决方案

Try either SetAuthCookie, or RedirectFromLoginPage. The redirect needs to know where to redirect to anyway (ReturnUrl), maybe that is your problem.

    if (Request.QueryString["ReturnUrl"] != null) 
    { 
        FormsAuthentication.RedirectFromLoginPage("someuserid", false); 
    } 
    else 
    { 
        FormsAuthentication.SetAuthCookie("someuserid", false); 
        Response.Redirect("~/SomePage.aspx"); 
    }

这篇关于ASP.NET窗体身份验证与Windows的Safari的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆