Мой веб-сайт постоянно вынуждает меня вернуться к странице входа (проблема аутентификации) между запросами.
Мой локальный веб-сайт работает нормально и точно такой же код. Нет проблемы с аутентификацией ...
Я рыскал по сети и весь день рвал себе на волосы эту проблему, пробуя разные вещи, как предлагалось и т. Д.
Может кто-нибудь объяснить мне, что происходит и как я могу это исправить?
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
Session["Email"] = model.Email;
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", YeagerTechResources.Resources.AcctUserNamePswdInCorrect);
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Ниже приведено следующее изображение файлов cookie, доступное сразу после того, как я войду на сайт производства. Обратите внимание, что файлы cookie отсутствуют.
Информация о файлах cookie - http://yeagertech.com/
Теперь, если вы посмотрите на ту же информацию, выполняющую тот же код для моего сайта разработки, вы увидите следующее. Это сводит меня с ума и тратит на это целый день. Буду признателен всем, кто поможет!
Информация о файлах cookie - http://localhost:4514/
ИМЯ
прокси
VALUE
http://localhost:62613/proxy/0/
DOMAIN
1031 * локальный *
PATH
/
EXPIRES
02.12.2012 20:21:16
Обратите внимание, что после нескольких запросов он возвращается на страницу входа - только на производственном сайте, а не на моем локальном сайте.
Похоже, что cookie на производственном сайте не имеет достаточно длительного срока хранения, прежде чем он должен вернуться к странице входа в систему.
Я хочу, чтобы куки сохранялись хотя бы в течение сеанса пользователя.
Что я могу сделать, чтобы решить эту проблему?
Еще раз спасибо ....
Мне нужно было настроить параметры IIS, связанные с этим веб-сайтом, что я и сделал, и получил следующую ошибку:
«Невозможно использовать SQL Server, так как состояние сеанса ASP.NET версии 2.0 не установлено на сервере SQL. Установите состояние сеанса ASP.NET для SQL Server версии 2.0 или выше»
Получив эту ошибку, я обнаружил, что на SQL Server необходимо включить состояние сеанса, поэтому я попытался запустить файл InstallSqlState.SQL (находится в папке версии Microsoft.Net на моем локальном ПК).
После попытки запуска сценария происходит сбой (с указанной ниже ошибкой), поскольку на моем сервере баз данных в папке SystemDatabases нет базы данных «msdb».
"Разрешение CREATE DATABASE отклонено в базе данных" master ". Если задание не существует, ожидается сообщение об ошибке из msdb.dbo.sp_delete_job. Сообщение 229, Уровень 14, Состояние 5, Процедура sp_delete_job, Строка 1 Разрешение EXECUTE было Отказано в объекте 'sp_delete_job', базе данных 'msdb', схеме 'dbo'. Сообщение 911, уровень 16, состояние 1, строка 10 База данных 'ASPState' не существует. Убедитесь, что имя введено правильно. "
Итак, если в моей размещенной базе данных нет базы данных msdb (все, что у меня есть, это master и tempdb), я не могу настроить состояние сеанса на моем сервере sql.
Я хотел бы знать, как действовать дальше.
Кстати, я считаю очень маловероятным, что, даже если он был включен, это решило бы проблему. Моя ситуация не вписывается ни в один из трех пунктов, которые вы изначально наметили.
Это маленькая БД, в которой почти нет записей. Я просто тестирую его на своем веб-сайте, чтобы убедиться, что он работает нормально, прежде чем начать добавлять записи. Промежуток времени также отсутствует.
Я перехожу на пару страниц в порядке, а затем внезапно возвращается на страницу входа в систему ...
Если моя локальная машина работает нормально, это определенно связано с тем, что мне нужно установить, потому что я работаю на ваших серверах.
Буду признателен за любую помощь ....