C# 要求在每次登录时存储用户名和密码的浏览器

C# 要求在每次登录时存储用户名和密码的浏览器,c#,html,asp.net,google-chrome,C#,Html,Asp.net,Google Chrome,更具体地说,铬。以下情况不会发生在Firefox、IE或Opera中 当我登录时,会收到提示,询问是否允许浏览器存储用户的用户名和密码。然而,无论我从选项中选择什么是的,对于这个网站,如果我退出并再次登录,我都会得到相同的提示 我的登录表单的HTML如下所示: <form id="def_mainForm" runat="server"> <div id="loginContainer"> <asp:Panel ID="pnlLog" runat="

更具体地说,铬。以下情况不会发生在Firefox、IE或Opera中

当我登录时,会收到提示,询问是否允许浏览器存储用户的用户名和密码。然而,无论我从选项中选择什么是的,对于这个网站,如果我退出并再次登录,我都会得到相同的提示

我的登录表单的HTML如下所示:

    <form id="def_mainForm" runat="server">
<div id="loginContainer">
    <asp:Panel ID="pnlLog" runat="server" DefaultButton="btnLogSubmit">
        <div id="loginFormContainer">
            <div class="logGroup">
                <div class="logLabel boldFont">
                    Email / Username
                 </div>
                 <asp:TextBox ID="username" runat="server" CssClass="loginBoxes" ToolTip="Enter your email address or username here" />
             </div>
             <div class="logGroup">
                 <div class="logLabel boldFont">
                     Password
                 </div>
                 <asp:TextBox ID="password" runat="server" TextMode="Password" CssClass="loginBoxes" ToolTip="Enter your password here" />
                  <a href="respass.aspx" class="logLabel">Forgot your password?</a>
             </div>
             <div id="logButtonHolder">
                 <asp:Button ID="btnLogSubmit" runat="server" Text="Log in" CssClass="defButton" />
             </div>
        </div>
    </asp:Panel>
</div>
我在谷歌上搜索过这个问题,我只遇到过希望使用autocomplete=off完全禁用此功能的人,我可以补充一下,这仍然会导致相同的问题

我错过了什么明显的东西吗?我做错什么了吗?如果您能提供任何帮助或建议,我们将不胜感激

编辑:

以下是检查cookies的代码:

    protected bool checkAlreadyLoggedIn()
{
    bool loggedIn = false;
    try
    {
        if ((Request.Cookies["gsc_sessionId"] != null) && (Request.Cookies["gsc_sessionId"].Value != ""))
        {
            this.Session["gs_sessionId"] = Request.Cookies["gsc_sessionId"].Value;
            loggedIn = true;
            Response.Redirect("home.aspx");
        }
        if (this.Session["gs_sessionId"] != null)
        {
            loggedIn = true;
            Response.Redirect("home.aspx");
        }
    }
    catch (Exception ex)
    {

    }
    return loggedIn;
}

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        if (!this.IsPostBack)
            if (!(this.checkAlreadyLoggedIn()))
                this.logUserOut(false);

    }
    catch (Exception ex)
    {

    }
}

protected void logUserOut(bool redirect)
{
    if (this.Session["gs_sessionId"] != null)
    {
        this.Session["gs_sessionId"] = null;
        this.Session.Abandon();
        Response.Cookies["gsc_sessionId"].Expires = DateTime.MinValue;
        Response.Cookies["gsc_sessionId"].Value = "";
        if (redirect)
            Response.Redirect("Default.aspx");
    }
    else
        if (redirect)
            Response.Redirect("Default.aspx");
}

请上载从cookie检查gs_sessionId的代码。该代码已添加。是否有不使用ASP.Net进行身份验证的原因?@Win-可能没有。我真的不想听起来有冒犯之意,但这和我问的问题有什么关系?基本上,你是在重新发明轮子。如果您使用,它将更安全地创建cookie,并且逻辑将更干净。更不用说你可以使用IPrincipal对象。
    protected bool checkAlreadyLoggedIn()
{
    bool loggedIn = false;
    try
    {
        if ((Request.Cookies["gsc_sessionId"] != null) && (Request.Cookies["gsc_sessionId"].Value != ""))
        {
            this.Session["gs_sessionId"] = Request.Cookies["gsc_sessionId"].Value;
            loggedIn = true;
            Response.Redirect("home.aspx");
        }
        if (this.Session["gs_sessionId"] != null)
        {
            loggedIn = true;
            Response.Redirect("home.aspx");
        }
    }
    catch (Exception ex)
    {

    }
    return loggedIn;
}

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        if (!this.IsPostBack)
            if (!(this.checkAlreadyLoggedIn()))
                this.logUserOut(false);

    }
    catch (Exception ex)
    {

    }
}

protected void logUserOut(bool redirect)
{
    if (this.Session["gs_sessionId"] != null)
    {
        this.Session["gs_sessionId"] = null;
        this.Session.Abandon();
        Response.Cookies["gsc_sessionId"].Expires = DateTime.MinValue;
        Response.Cookies["gsc_sessionId"].Value = "";
        if (redirect)
            Response.Redirect("Default.aspx");
    }
    else
        if (redirect)
            Response.Redirect("Default.aspx");
}