19. april 2006 - 11:30
Der er
18 kommentarer og 1 løsning
javascript login på mobilt interface
Sidder med et website der skal vises på PDA. Hvis en bruger på sin pda får timeout, skal denne promptes for et login via javascript popup. Hvis brugeren herefter indtaster det rigtige brugernavn/password skal popup vinduet bare lukkes og siden der blev promptet fra skal vises som den var før prompten (med felter og lignende udfyldt). Kan dette lade sige gøre - og hvordan? Kan man eksempelvis opbygge en javascript prompt vindue med: function BuildPanel() { document.write('<form name="logon"><table align="left" border="0"><tr><td align="right">'); document.write('<small><font face="Verdana">Username:</font></small></td>'); document.write('<td><small><font face="Verdana"><input type="text" name="username" size="20"></font></small></td></tr>'); document.write('<tr><td align="right"><small><font face="Verdana">Password:</font></small></td>'); document.write('<td><small><font face="Verdana"><input type="password" name="password" size="20"></font></small></td></tr>'); if(imgSubmit == ""){ document.write('<tr><td align="center" colspan="2"><p><input type="button" value="Logon" name="Logon" onclick="login(username.value,password.value)">'); } else { document.write('<tr><td align="center" colspan="2"><p><input type="image" src="'+imgSubmit+'" name="Logon" onclick="login(username.value,password.value)">'); } if(imgReset == ""){ document.write('<input type="reset" value="Reset" name="Reset">'); } else { document.write('<input type="image" src="'+imgReset+'" name="Reset" onclick="logon.reset();">'); } document.write('</p></td></tr></table></form>'); ?
Annonceindlæg fra IBM
19. april 2006 - 11:30
#1
siden er lavet i vb.net
19. april 2006 - 12:34
#2
kan du få popup til at blive vist ved timeout ?
19. april 2006 - 14:44
#3
f.eks i global.asax ?
25. april 2006 - 10:59
#4
jeg kan godt få vist popup alert vindue ved timeout.
25. april 2006 - 11:27
#5
ok hvordan ser koden ud som viser dig popup vinduet ? Er det meningen at data fra den side som brugeren var på skal gemmes ?
25. april 2006 - 16:03
#6
ja og indtil videre er popup bare en alert
25. april 2006 - 16:22
#7
hvordan ser koden ud til din alert og ligger den i global.asax ? ar sOption="toolbar=yes,location=yes,directories=yes,menubar=yes,"; // sOption+="scrollbars=yes,width=1000,height=800,left=100,top=25"; var sWinHTML =''; var winprint=window.open("",null,"width=670,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,left=0,top=0"); winprint.document.open(); winprint.document.write('<html><LINK rel="stylesheet" type="text/css" href="../Style/style.css" />'); winprint.document.write('<p>vindue åbnet fra global.asax</p>'); winprint.document.write('</body></html>'); //fjern dropdownlister winprint.document.getElementById('DropDiv1').style.display = 'none'; //fjen knapper winprint.document.getElementById('button1').style.display = 'none'; winprint.document.getElementById('button2').style.display = 'none'; winprint.document.getElementById('button3').style.display = 'none'; winprint.document.getElementById('button4').style.display = 'none'; //fjerne printer link. winprint.document.getElementById('PrintDiv').style.display = 'none'; winprint.document.close(); winprint.focus();
26. april 2006 - 14:35
#8
nej og det bare en alert(besked)
26. april 2006 - 14:52
#9
Hvor fanger du så timeout event ?
28. april 2006 - 13:14
#10
med en kontrol: using System; using System.ComponentModel; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.Mobile; namespace Timeoutcontrol { [DefaultProperty("Text"), ToolboxData("<{0}:SessionTimeoutControl runat=server></{0}:SessionTimeoutControl>")] public class SessionTimeoutControl : System.Web.UI.MobileControls.MobileControl { public override bool Visible { get { return false; } } public override bool EnableViewState { get { return false; } } protected override void Render(HtmlTextWriter writer) { if (HttpContext.Current == null) writer.Write("[ *** " + this.ID + " *** ]"); base.Render(writer); } protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); if (Context.Session != null) { if (Context.Session.IsNewSession) { string sCookieHeader = Page.Request.Headers["Cookie"]; if ((null != sCookieHeader) && (sCookieHeader.IndexOf("ASP.NET_SessionId") >= 0)) { if (Page.Request.IsAuthenticated) { FormsAuthentication.SignOut(); } Page.Response.Redirect("Login.aspx"); } } } } #region IAttributeAccessor Members public string GetAttribute(string key) { // TODO: Add SessionTimeoutControl.GetAttribute implementation return null; } public void SetAttribute(string key, string value) { // TODO: Add SessionTimeoutControl.SetAttribute implementation } #endregion } } som man tilføjer sin toolbox og derefter tilføjer sin form :)
28. april 2006 - 13:16
#11
Den nedarver normalt fra Control istedet for System.Web.UI.MobileControls.MobileControl men er ved at omskrive den så den kan redirecte til MobilePages
28. april 2006 - 13:16
#12
og så skal den nedarve fra mobilecontrol
Det er så faktisk i denne linie at du gerne vil have vist en login side: Page.Response.Redirect("Login.aspx"); ? Spørgsmålet er om det ikke nemmere at vise et login vindue før brugeren rent faktisk bliver logget ud. På den måde kan du sikre dig at data på siden er gemt. Ellers skal du vise login siden og så derefter redirecte til history -1. Så bør det meste af dataen være vist undtagen evt passwords.
Det kunne godt være en løsning, jeg afprøver det i næste uge.
ideen er god virker således; RedirectToMobilePage("java script:history.back(); return false;") eller Response.Redirect("java script:history.back(); return false;") smid et svar :)
perfekt :) skal du med til poker lørdag ?
hvis familien er happy - skal jeg :)
ok lyder godt. Jeg skal med :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.