私の 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);
}
}
}
}
メンバー タイプの認証の 1 つで問題なく動作します。その他の場合、メンバーが認証された後、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 でしたが、アップグレードしたことに言及することが重要だと思います。