C#代码登录在Safari上无法工作(C# Login code not work on safar

2019-09-26 22:37发布

我用下面的代码登录到我的asp.net网站。 与框架4它在网络凉亭成功运行,但在Safari浏览器(iPhone,iPad的)没有工作,只有当我点击登录按钮,他刷新页面,无法登陆。

Session["AdminID"] = DT.Rows[0]["Id"].ToString();
Response.Cookies.Add(new HttpCookie("SuperAccountId", DT.Rows[0]["Id"].ToString()));
Response.Cookies["SuperAccountId"].Expires = System.DateTime.Now.AddDays(1);

Response.Cookies.Add(new HttpCookie("SuperAccountName", DT.Rows[0]["Username"].ToString()));
Response.Cookies["SuperAccountName"].Expires = System.DateTime.Now.AddDays(1);
FormsAuthentication.SetAuthCookie(Session["AdminID"].ToString(), true);
FormsAuthentication.RedirectFromLoginPage("admin", true);

//create a cookie
HttpCookie myCookie = new HttpCookie("FirstLoginCookies");

//Add key-values in the cookie
myCookie.Values.Add("first", "1");

//set cookie expiry date-time. Made it to last for next 12 hours.
myCookie.Expires = DateTime.Now.AddHours(12);

//Most important, write the cookie to client.
Response.Cookies.Add(myCookie);

if (Request.QueryString["ReturnUrl"] != null)
{
     string redirectURL = Request.QueryString["ReturnUrl"].ToString();
     Response.Redirect("~" + redirectURL);
}
else
{
     Response.Redirect("~/admin");
} 

Answer 1:

请确保你有你的母版页没有错误。 (如果您使用的是母版页)然后尝试修改代码的最后一部分,象下面这样:

                if (Request.QueryString["ReturnUrl"] != null)
                {
                    string redirectURL = Request.QueryString["ReturnUrl"].ToString();
                    Response.Redirect("~" + redirectURL, false);

                }
                else
                {
                    Response.Redirect("~/admin", false);
                } 

通过设置的Response.Redirect的第二个参数为“假”原来的页面不会被发回到浏览器,你应该被重定向到新的一页。



Answer 2:

首先检查该cookie在响应头设置。

然后检查cookie将被包括在浏览器发出下一个请求。

然后检查Cookie的细节 - 认证应该只有HTTP和仅安全。 检查cookie的路径,因为这些似乎情况.NET和网页网址不敏感,但他们实际上是区分大小写。 通过设置cookie的配置FormsAuthentication.SetAuthCookie是在你的web.config。

尝试使用较少的饼干,尤其是在移动 - 他们包含在每一个未来的请求,以便一种带宽税添加到每一页。 这是值得的身份验证cookie,但其余的都是最好直接存储在服务器端的会话或客户端(在本地存储或索引数据库,这两者的移动Safari浏览器支持)。



文章来源: C# Login code not work on safari