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分間の非アクティブ後にユーザーをホーム/インデックス(ログインページ)にリダイレクトします。

私は理由を理解できません。私が紛失しているものはありますか?

マシンキーに関連する問題はありますか?どうすればこの問題を解決できますか?

答えて

0

マシンキーを使用して問題を解決しました。

マシンキーを生成してweb.configに追加しました。

for generate machine key

私のWeb設定ファイルの最終バージョン

<system.web> 
     <machineKey 
validationKey="5DEBFB5B7BA6F3E1DB190A2BF28F08AEB8964618C2895BD931A735143D1A9C61DA59443F8B407F125447A663452F76AB82F18E4191911E3D563700CD4CA27138" 
decryptionKey="A0048282BE5B72D6028F46820C87A360906430E9E3D8EDE09BAB79E95AF4B9A2" 
validation="SHA1" decryption="AES" 
/> 
     <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> 
関連する問題