0

Ich habe Code wie folgt in Login Controller. Ich erstelle einen Cookie und Sitzungen, wenn der Benutzer sich mit dem richtigen Benutzernamen und Passwort anmeldet.Cookie läuft nach ein paar Minuten ab? Timeout funktioniert nicht richtig

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; 

Und ich habe folgendes 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> 

ich das Timeout in überall in 60 Minuten ablaufen. Alles scheint richtig zu sein. Und es gibt kein Problem im lokalen Server. Aber wenn ich dieses Projekt auf dem Server veröffentliche, leitet das System Benutzer nach 5 Minuten Inaktivität auf Home/Index (Login-Seite) um.

Ich kann nicht herausfinden, warum. Gibt es etwas, das mir fehlt?

Könnte das Problem mit dem Maschinenschlüssel zusammenhängen? Wie kann ich dieses Problem lösen?

Antwort

0

Ich löste das Problem mit Maschinenschlüssel.

Ich generiere einen Maschinenschlüssel und ich habe es zu web.config hinzugefügt.

for generate machine key

Endfassung meiner Web-Konfigurationsdatei

<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> 
Verwandte Themen