Я создаю веб-приложение в ASP.NET MVC на основе текущего настольного приложения, но мне нужно реализовать для него настраиваемую аутентификацию по форме. Проблема в том, что код, который я использую, не работает, он вообще не аутентифицирует пользователя.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(UserModel user)
{
var databaseConnector = new MySQLConnector("localhost", "root", "", "ingeco_driverscontrol");
IAuthManager authManager = new AuthDatabaseManager(databaseConnector);
var password = user.Password;
if (authManager.LogIn(user.Email, ref password))
{
var loggedUser = authManager.GetLoggedUser();
var ticket = new FormsAuthenticationTicket(1, loggedUser.Email, DateTime.Now, DateTime.Now.AddMinutes(2880), false, "admin", FormsAuthentication.FormsCookiePath);
var hash = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent)
{
cookie.Expires = ticket.Expiration;
}
Response.Cookies.Add(cookie);
if (!string.IsNullOrEmpty(Request.Form["ReturnUrl]"]))
{
return RedirectToAction(Request.Form["ReturnUrl]"].Split('/')[2]);
}
else
{
return RedirectToAction("Profile");
}
}
else
{
ViewBag.Message = "Not OK";
}
return View(user);
}
Что здесь не так? Почему, когда я пытаюсь получить доступ к авторизованному действию после входа в систему текущего зарегистрированного пользователя, все еще Anonymus?