Avatar billede mmbn Nybegynder
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>');
?
Avatar billede mmbn Nybegynder
19. april 2006 - 11:30 #1
siden er lavet i vb.net
Avatar billede dr_chaos Nybegynder
19. april 2006 - 12:34 #2
kan du få popup til at blive vist ved timeout ?
Avatar billede dr_chaos Nybegynder
19. april 2006 - 14:44 #3
f.eks i global.asax ?
Avatar billede mmbn Nybegynder
25. april 2006 - 10:59 #4
jeg kan godt få vist popup alert vindue ved timeout.
Avatar billede dr_chaos Nybegynder
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 ?
Avatar billede mmbn Nybegynder
25. april 2006 - 16:03 #6
ja og indtil videre er popup bare en alert
Avatar billede dr_chaos Nybegynder
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();
Avatar billede mmbn Nybegynder
26. april 2006 - 14:35 #8
nej og det bare en alert(besked)
Avatar billede dr_chaos Nybegynder
26. april 2006 - 14:52 #9
Hvor fanger du så timeout event ?
Avatar billede mmbn Nybegynder
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 :)
Avatar billede mmbn Nybegynder
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
Avatar billede mmbn Nybegynder
28. april 2006 - 13:16 #12
og så skal den nedarve fra mobilecontrol
Avatar billede dr_chaos Nybegynder
02. maj 2006 - 08:14 #13
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.
Avatar billede mmbn Nybegynder
11. maj 2006 - 16:54 #14
Det kunne godt være en løsning, jeg afprøver det i næste uge.
Avatar billede dr_chaos Nybegynder
12. maj 2006 - 09:32 #15
ok
Avatar billede mmbn Nybegynder
16. maj 2006 - 14:42 #16
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 :)
Avatar billede dr_chaos Nybegynder
16. maj 2006 - 14:45 #17
perfekt :)

skal du med til poker lørdag ?
Avatar billede mmbn Nybegynder
16. maj 2006 - 15:01 #18
hvis familien er happy - skal jeg :)
Avatar billede dr_chaos Nybegynder
16. maj 2006 - 15:05 #19
ok lyder godt.
Jeg skal med :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester