C# 要求在每次登录时存储用户名和密码的浏览器
更具体地说,铬。以下情况不会发生在Firefox、IE或Opera中 当我登录时,会收到提示,询问是否允许浏览器存储用户的用户名和密码。然而,无论我从选项中选择什么是的,对于这个网站,如果我退出并再次登录,我都会得到相同的提示 我的登录表单的HTML如下所示: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="
<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");
}