Quiero almacenar la información de la sesión (desde ASP) en el almacenamiento local y el acceso en JS y está funcionando, pero cuando por primera vez inicio sesión (valor de clave de almacenamiento local) "userStatus", que es "usuario", no se almacena en el almacenamiento local incluso NO se crea ningún almacenamiento local…. PERO cuando vuelvo desde cualquier página (después de cerrar sesión) para iniciar sesión e INICIAR SESIÓN DE NUEVO, se crea el almacenamiento local ... alguien tiene idea de lo que me estoy perdiendo (¿es un problema de publicación?)
botón Iniciar sesión
<div class="d-grid gap-2 pt-2"> <asp:Button ID="Button1" runat="server" class="btn btn-secondary " Text="Log In" OnClick="btnLogIn_Click" OnClientClick="checkStatus();" /> </div>código asp donde paso Session["role"] = "usuario" desde la página de inicio de sesión.cs a la variable masterpage
if (dr.HasRows) { if(dr.Read()) { //Response.Write("<script> alert( 'the user : "+dr.GetValue(8).ToString()+" Successfully Logged in')</script>"); Session["username"]=dr.GetValue(8).ToString(); Session["fullname"] = dr.GetValue(0).ToString(); Session["role"] = "user"; Site1.PublicSession=HiddenField1.Value = Session["role"].ToString(); Session["status"] = dr.GetValue(10).ToString(); } ScriptManager.RegisterStartupScript(this, GetType(), "popup", "MyAlertFunOnSucc()", true); Response.Redirect("homePage.aspx"); } else { // Response.Write("<script> alert('Invalid Login or Password ')</script>"); ScriptManager.RegisterStartupScript(this, GetType(), "popup", "MyAlertFunOnFailure()",true); HiddenField1.Value = null; }mi función Js en el encabezado de la página maestra
<script type="text/javascript"> function checkStatus() { var printSession = '<%=PublicSession%>'; console.log(printSession); if (printSession) { localStorage.setItem("userStatus", printSession); } } </script>