0

我有一个登录按钮,他有以下代码。

protected void prv_Click(object sender, EventArgs e)
{

    if (Page.IsPostBack)
    {
        if (!HttpContext.Current.Request.IsSecureConnection)
        {
            string postbackUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace("http", "https");
            Response.Redirect(postbackUrl);

        }
    }

    login_box.Visible = true;
}

问题是,如果用户使用 http 浏览并单击触发 prv_Click 的登录链接,则该站点会将您重定向到正确的 https,但标准 div 设置为可见 false 并在服务器上运行的 login_box 永远不会设置为真。用户必须再次单击登录链接,然后将其展开。

任何帮助,将不胜感激。

4

1 回答 1

1

不要在按钮单击时设置可见性,在页面加载时设置它。像这样的东西应该工作:

login_box.Visible = HttpContext.Current.Request.IsSecureConnection;

请注意,它不应位于IsPostBack. 这将始终确保它仅在您有安全连接时才可见。如果出于任何其他原因需要隐藏它,那么您需要相应地修改表达式。

于 2013-01-30T16:19:55.270 回答