0
ログインコントローラにこのようなコードがあります。ユーザーが正しいユーザー名とパスワードでログインすると、Cookieとセッションが作成されます。数分後にCookieの有効期限が切れますか?タイムアウトが正しく動作しません
Models.DTO.Security.CustomPrincipalSerializeModel serializeModel = new Models.DTO.Security.CustomPrincipalSerializeModel();
serializeModel.Id = member.Id;
serializeModel.UserName = member.UserName;
serializeModel.RoleId = member.RoleId;
serializeModel.IsAdmin = member.IsAdmin;
JavaScriptSerializer serializer = new JavaScriptSerializer();
string userData = serializer.Serialize(serializeModel);
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
1,
model.UserName,
DateTime.Now,
DateTime.Now.AddMinutes(60),
false,
userData
);
string encTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)
{
HttpOnly = true
};
Response.Cookies.Add(faCookie);
Session["CartItemsCount"] = 0;
Session["CartItems"] = new List<Models.DTO.CartDTO.CartVM>();
Session["DiscountPercentage"] = member.DiscountPercentage;
Session["CreditLimit"] = member.CreditLimit;
そして、私は次のWeb.configあります
<system.web>
<sessionState timeout="60"/>
<authentication mode="Forms">
<forms loginUrl="~/Home/Index" timeout="60" name=".ASPXAUTH" />
</authentication>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
</system.web>
を私はどこにでも60分で期限切れにタイムアウトを設定します。すべてが正しいようです。ローカルサーバーに問題はありません。 しかし、このプロジェクトをサーバーに公開すると、システムは5分間の非アクティブ後にユーザーをホーム/インデックス(ログインページ)にリダイレクトします。
私は理由を理解できません。私が紛失しているものはありますか?
マシンキーに関連する問題はありますか?どうすればこの問題を解決できますか?