У меня есть приложение, которое создает cookie, когда пользователь входит в приложение. Затем cookie читается на последующих страницах, и пользователю разрешается продолжать обработку на этих страницах, если они вошли в систему (cookie существует). Когда я запускаю свое приложение в IE 8.0, cookie-файл реагирует так, как я ожидаю. Когда я запускаю свое приложение через VS2008, cookie отвечает, как я ожидаю. Когда я запускаю свое приложение в Firefox 4.0, файл cookie недействителен на моей следующей странице.
Вот настройка кода моего печенья
protected void btnLogin_Click(object sender, EventArgs e)
{
if (CheckFields())
{
string strSQL;
sqlUserInfo.SelectParameters.Clear();
strSQL = "SELECT FirstName, LastName, Email FROM UserInfo WHERE Email=@email AND Password=@password";
sqlUserInfo.SelectCommand = strSQL;
if (txtEmail.Text != "")
{
sqlUserInfo.SelectParameters.Add("email", txtEmail.Text);
sqlUserInfo.SelectParameters.Add("password", txtPassword.Text);
DataView dv = (DataView)sqlUserInfo.Select(DataSourceSelectArguments.Empty);
if (dv.Table.Rows.Count > 0)
{
string welcomeMsg = "Welcome back " + dv[0][0] + " " + dv[0][1] + "!";
HttpCookie cookie = new HttpCookie("Email");
cookie.Value = txtEmail.Text;
DateTime dtNow = DateTime.Now;
Response.Cookies.Add(cookie);
lblMenu.Text = welcomeMsg + " <a href='AcctInfo.aspx'>Update Account Info</a> <a href='TextAlerts.aspx'>Create/Update Text Alerts</a> <a href='graphSetup.aspx'>Graphing</a>";
lblMessage.Text = "";
btnLogin.Enabled = false;
btnLogoff.Enabled = true;
}
else
{
lblMessage.Text = "Login Unsuccessful";
}
}
}
}
Вот мой код для загрузки моей следующей страницы, который является acctinfo.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
cookie = Request.Cookies["Email"];
if (cookie == null)
{
lblMessage.Text = "Not logged in. <a href='login.aspx'>Login</a>";
lbLogoff.Visible = false;
}
else
{
EnableControls();
string strSQL;
sqlUserInfo.SelectParameters.Clear();
strSQL = "SELECT FirstName, LastName, Email, Password, PhoneNumber, Provider FROM UserInfo WHERE Email=@email";
sqlUserInfo.SelectCommand = strSQL;
sqlUserInfo.SelectParameters.Add("email", cookie.Value.ToString());
DataView dv = (DataView)sqlUserInfo.Select(DataSourceSelectArguments.Empty);
if (dv.Table.Rows.Count > 0)
{
oldPass = dv[0][3].ToString();
oldPhone = dv[0][4].ToString();
oldProvider = dv[0][5].ToString();
if (!IsPostBack)
{
txtPassword.Text = oldPass;
txtPassword2.Text = oldPass;
txtPhone.Text = oldPhone;
lstProvider.SelectedValue = oldProvider;
strMenu = "Welcome " + dv[0][0].ToString() + " " + dv[0][1].ToString() + " <a href='TextAlerts.aspx'>Create/Update Text Alerts</a> <a href='graphSetup.aspx'>Graphing</a> ";
lblMenu.Text = strMenu;
}
}
}
}
Cookies включены в Firefox, потому что я могу удалить код, который сохраняет куки из файла, в котором он находится, поместить его в отдельный файл, просмотреть этот файл, а затем просмотреть мой AcctInfo, и он работает, как и ожидалось.
Любая помощь будет принята с благодарностью.
Спасибо!