На моем веб-сайте Umbraco есть 2 типа участников. Я создал пользовательскую форму входа, которая проверяет учетные данные и аутентифицирует участников. Вот мой код управления бритвой Umbraco, который делает это:
@using umbraco.MacroEngines;
@{
if (Request.HttpMethod.ToLower() == "post")
{
if (!string.IsNullOrEmpty("username") && !string.IsNullOrEmpty("password"))
{
string username = Request["username"];
string password = Request["password"];
var isValid = Membership.ValidateUser(username, password);
if (isValid)
{
FormsAuthentication.SetAuthCookie(username, true);
//FormsAuthentication.RedirectFromLoginPage(username, true);
Response.Redirect(new DynamicNode(2431).Url, true);
}
}
}
}
Для одного из типов участников аутентификация работает нормально. Во-вторых, после аутентификации члена Umbraco запускает скрипт \App_Data\TEMP\Razor\inline-6ff314cb99b9da6a178f3b2d31bc709e.cshtml. Этот скрипт имеет следующий код:
@{
FormsAuthentication.SignOut();
// Drop all the information held in the session
Session.Clear();
Session.Abandon();
// clear authentication cookie
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);
// clear session cookie
HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
cookie2.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie2);
// Redirect the user to the login page
Response.Redirect("login.aspx", true);
}
Конечно, после срабатывания этого скрипта мой участник выходит из системы. Почему срабатывает этот скрипт и как его остановить?
Моя текущая версия Umbraco — 4.11.3. Думаю, важно отметить, что раньше была версия 4.7.0, которую я обновил.