我的 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 并且我升级了。