Извините, если это было покрыто, но я собираюсь вырвать мои волосы.
Мой сайт использует проверку подлинности с помощью форм и отлично работает, когда я тестирую на // localhost, но когда я публикую в Интернете, он не работает в IE9. Я выполнил все шаги, описанные в руководствах, но при использовании IE9 или Chrome FormsAuthentication.SetAuthCookie никогда не создает cookie. Кикер, когда я использую Firefox, это работает. Ниже приведен код из моего web.config и мой код в C #.
По сути, я собираю имя пользователя и пароль от пользователя и аутентифицируюсь на моем SQL Server с сохраненным процессом. Затем верните временный веб-ключ, который сайт использует для взаимодействия с профилем пользователя. Веб-ключ хранится в файле cookie FormsAuthentication в качестве идентификатора, который я могу получить для подтверждения пользователя, вошедшего в систему.
Кроме того, я знаю, что файл cookie аутентификации никогда не создается, потому что у меня есть элемент управления asp: loginstatus на странице, который никогда не меняется.
web.config:
<authentication mode="Forms">
<forms loginUrl="Login.aspx"
protection="All"
path="/"
slidingExpiration="true"
timeout="60"
cookieless="AutoDetect" />
</authentication>
<authorization>
<deny users="?"/>
<allow users= "*"/>
</authorization>
в коде позади:
void LogUserIn(string UserEmail, string Pwd)
{
conn = new SqlConnection(connstr);
sql = new SqlCommand("exec usp_AuthLogin @Email, @Pwd", conn);
sql.Parameters.AddWithValue("@Email", UserEmail);
sql.Parameters.AddWithValue("@Pwd", Pwd);
try
{
conn.Open();
reader = sql.ExecuteReader();
while (reader.Read())
{
Result = reader["Result"].ToString(); // value of webkey
}
}
catch (Exception ex)
{
}
finally
{
conn.Close();
}
// if successful log in and create cookie
if (Result != "Denied")
{
FormsAuthentication.SetAuthCookie(Result, true); // set cookie with webkey from sql server
LoggedIn = true;
}
else
{
LoggedIn = false;
}
}
Пожалуйста, помогите