magikbanana
Messages postés17Date d'inscriptionvendredi 3 février 2006StatutMembreDernière intervention 8 août 2008
-
7 août 2008 à 14:15
magikbanana
Messages postés17Date d'inscriptionvendredi 3 février 2006StatutMembreDernière intervention 8 août 2008
-
8 août 2008 à 09:12
Bonjour tout le monde,
Ce que je souhairerai faire est tout simplement une gestion des utilisateurs (celle intégrée à ASP.Net/SQL) pour garder l'état de mes variables de session de chaque utilisateur et sans être dépendant d'un redémarrage.
Pour le moment j'ai :
System.Web.Management.SqlServices.Install(txtServer.Text, txtUserName.Text, txtPassword.Text, txtDatabase.Text, SqlFeatures.All);
-> aucuns problèmes
C'est là qua ça se gâte :
System.Web.Management.SqlServices.InstallSessionState(txtServer.Text, txtUserName.Text, txtPassword.Text, null /*txtDatabase.Text*/, SessionStateType.Persisted);
-> c'est le drame...
Vous ne pouvez pas spécifier le nom de la base de données, car il est autorisé uniquement si le type d'état de session est SessionStateType.Custom. Nom du paramètre : customDatabase: à System.Web.Management.SqlServices.SessionStateParamCheck(SessionStateType type, String& customDatabase) à System.Web.Management.SqlServices.SetupSessionState(String server, String user, String password, Boolean trusted, String connectionString, String customDatabase, SessionStateType type, Boolean install) à System.Web.Management.SqlServices.InstallSessionState(String server, String user, String password, String customDatabase, SessionStateType type) à Admin_Setup.ButtonActiver_Click(Object sender, EventArgs e) dans xxxxxxxxxxx
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 7 août 2008 à 19:38
bonjour,
le membershipprovider et les sessions sont deux choses différentes. Si tu veux que les sessions soient accessible meme après redemarrage des serveurs alors il faut utiliser le mode de session SQL, c'est à dire en configurant le sessionstate du web.config; cela va en effet créer une nouvelle base, je n'ai jamais touché à ca, mais il doit être possible de mettre dans la même base quele membership.
Par contre si tu veux lier les données de la session à un user, il faudrais plutot utiliser les profiles utilisateur, cela correspond plus à ce que tu recherches mais ce n'est pas des variables sessions.
magikbanana
Messages postés17Date d'inscriptionvendredi 3 février 2006StatutMembreDernière intervention 8 août 2008 7 août 2008 à 14:32
J'ai trouvé la solution mais seulement en partie, une erreur bête :
-> System.Web.Management.SqlServices.InstallSessionState(txtServer.Text, txtUserName.Text, txtPassword.Text, txtDatabase.Text, SessionStateType.Custom);
Je croyais que le Custom n'était que pour le web.config comme je veux avoir mes variables de session persistantes.
Le problème c'est que Session["xxx"] fonctionne bien tant que je ne ferme rien, donc j'ai un problème, si quelqu'un a un exemple fonctionnel ou un tuto, help !
magikbanana
Messages postés17Date d'inscriptionvendredi 3 février 2006StatutMembreDernière intervention 8 août 2008 7 août 2008 à 15:00
Avec :
<sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="data source=localhost\SQLEXPRESS;initial catalog=ASPState;uid=PlanningNG;pwd=j732b2HjQK;" useHostingIdentity="false" cookieless="false" timeout="20" />
, et :
System.Web.Management.SqlServices.InstallSessionState(txtServer.Text, txtUserName.Text, txtPassword.Text, null, SessionStateType.Persisted);
J'ai des données inscrites dans une DB 'ASPState' , bien que cela ne soit pas mon but recherché puisque je voudrais que tout soit dans la même base (pour des soucis de facilité de restauration de données).
Le problème est que quand je relance tout, les variables de Session sont vides donc c'est comme si je n'avais rien fait.
magikbanana
Messages postés17Date d'inscriptionvendredi 3 février 2006StatutMembreDernière intervention 8 août 2008 8 août 2008 à 09:12
Bonjour jesusonline,
C'est exactement la conclusion que j'ai eu hier soir donc je suis rassuré, sinon j'ai bien essayé de bricoler avec le SessionID mais rapidement mis de côté.
En utilisant les paramètres SQLServer custom dans le code C# et web.config je confirme que j'ai bien tout de créé et d'utilisé dans la même base, ce que je trouve pratique pour restaurer un backup vite fait.