Session a SimpleSqlMembershipProvider od Altairis   otázka

ASP.NET WebForms

Zdravim, uz dlhsie pouzivam SimpleSqlMember­shipProvider od Altairis a teraz som narazil na jeden problem.

Potrebujem zabezpecit aby sa mi nemohol prihlasit ten sami uzivatel dva krat.

Puzivam na to hodnotu Loged v profile uzivatela.

Urobil som to jednoducho tak ze som v code pri logine pridal kod:

protected void LoginMain_LoggingIn(object sender, LoginCancelEventArgs e)
   {
       String sUser;
       MembershipUser user;
       ProfileCommon profil;
       if (!HttpContext.Current.User.Identity.IsAuthenticated)
       {
           Login lg = (System.Web.UI.WebControls.Login)LoginArea.FindControl("LoginMain");
           TextBox tb = (TextBox)lg.FindControl("UserName");
           sUser = tb.Text;
           user = Membership.GetUser(sUser);
           profil = Profile.GetProfile(sUser);

           if (profil.Loged == 1)
           {
               string failtext = "Duplicitné prihlásenie toho istého užívateľa nieje možné !!!";
               ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup('" + failtext + "');", true);
               lg.FailureText = failtext ;
               e.Cancel = true;
           }
           else
           {
               profil.Loged = 1;
               profil.Session = Session.SessionID.ToString();  
               profil.Save();
           }
       }
   }

a zas pri odhlaseni

protected void HeadLoginStatus_LoggingOut(object sender, LoginCancelEventArgs e)
 {
     Profile.Loged = 0;
     Profile.Session = null;
     Profile.Save();
 }

Funguje to ale problem mam ked uzvatel zrusi okno prehliadaca bez predchadzajuceho odhlasenia alebo vyprsania sedenia nastavené v

<membership defaultProvider="MyMembershipProvider" userIsOnlineTimeWindow="20" >

Skusal som do global.asax pridat

protected void Session_End(Object sender, EventArgs e)
    {
        Profile.LogedIn = 0;
        Profile.Session = null;  
        Profile.Save(); 
    }

Ale to nema zmysel, spusti sa až po 20 min. a profil uz neexistuje dojde k chybe.

Chcem to riesit cez session ale nerozumiem ako to presne funguje a uz vobec netusim ako to to mam nakodovat aby to fungovalo s altaris SimpleSqlMember­shipProvider.

Viete poradit ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback