bonjour a tous
un petit probleme qui commence a bien me faire ch....
apres avoir dev une methode de suppression pour des lignes de GridView qui supprime un repertoire d'images et la ligne de dbb et lors de sont utilisation, une de mes valeur de session disparait littéralement.
L'item de session est carrement null.
pour comprendre le shema
ouverture de session classique.
authentification par formulaire de l'utilisateur via bdd
recup de valeurs en element de session.
un peu de code
methode authentification (classique)
Methode de suppression du GridView
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 public static Boolean Authentifier(Negociateur _Negociateur) { try { String strSQL = "SELECT * FROM Negociateur WHERE Email = @Email"; using (SqlCommand cmd = new SqlCommand(strSQL, OutilsDB.Cnx())) { cmd.Parameters.AddWithValue("@Email", _Negociateur.Email); cmd.Connection.Open(); using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { if (dr.Read()) { if (dr["Passwd"].ToString() == _Negociateur.Passwd) { _Negociateur.Nom = (String)dr["Nom"]; HttpContext.Current.Session["NumNegociateur"] = (Int32)dr["NumNegociateur"]; HttpContext.Current.Session["NumAgence"] = (Int32)dr["NumAgence"]; HttpContext.Current.Session["NegociateurID"] = (Guid)dr["NegoID"]; } else throw new Exception("Erreur d'authentification !"); } } } } catch (Exception) { throw; } return true; }
et enfin la methode simple de suppression du repertoire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 protected void gv_RowDeleting(object sender, GridViewDeleteEventArgs e) { try { DataKey data = gv.DataKeys[e.RowIndex]; switch (Mode) { case 0: break; case 1: break; case 2: MoteurSql.BienDB.delBien(new Guid(data.Value.ToString())); //Appel methode sup image OutilsImages _OutilsImages = new OutilsImages(); _OutilsImages.NomRepertoire = data.Value.ToString(); _OutilsImages.delRepertoire(); break; case 3: MoteurSql.ContactDB.delContact(new Guid(data.Value.ToString())); break; } } catch (Exception ex) { lblError.Text = ex.Message; } finally { chargeGV(Mode); <--Recharge du GridView (enabledViewstate =false) } }
Lors du click sur la ligne du GridView, l'operation s'effectue sans aucun probleme, mais au grand mystere les éléments de la session disparaissent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private String str = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["Upload"]); public void delRepertoire() { if(System.IO.Directory.Exists(str + @"\" + _NomRepertoire)) System.IO.Directory.Delete(str + @"\" + _NomRepertoire, true); }
Bon voila l'essentiel y est.
Il est a savoir que selon microsoft les sessions sont supectible de disparaitre a tous moment et sans preavis.
donc est ce que quelqu'un a deja été confronté au probleme.
et quel remede a t'il mis en place.
pour ma part je pense mettre tous cela dans un cookies.
Partager