Auteur de questions
Webpart d'utilisateurs Online

Question
-
Bonjour,
j'essaie de créer un Webpart avec les utilisateurs online!
pour l'instant, je liste les utilisateurs du site à l'aide du code suivant :
Extrait de codeprotected override void Render(HtmlTextWriter _output)
{SPSecurity.RunWithElevatedPrivileges(delegate(){
using (SPSite mySite = new SPSite("http://serveur/default.aspx")){
using (SPWeb myWeb = mySite.OpenWeb()){
foreach (SPUser curUser in myWeb.Users){
if (curUser.Name != "")_output.Write("<b>{0}</b><br/>", curUser.Name);else
_output.Write("<b>{0}</b><br/>",curUser.LoginName);}
}
}
});
}
cependant, je cherche dans le SDK un moyen d'obtenir les informations sur le status de l'utilisateur pour savoir s'il est online ou non, mais je ne trouve rien
est ce que quelquelqu'un aurait une idée?
merki
question bonus
comment je peux remplacer new SPSite("http://serveur/default.aspx") pour ne pas renseigner l'url du serveur?
Toutes les réponses
-
J'ai trouvé pour ma 2e question, et corriger un peu mon code précédent
Extrait de codeprotected override void Render(HtmlTextWriter _output)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//recupere l'id du site parent
Guid currentSiteID = SPContext.Current.Site.ID;
using (SPSite mySiteCollection = new SPSite(currentSiteID))
{
using (SPWeb myWeb = mySiteCollection.OpenWeb())
{
foreach (SPUser curUser in myWeb.SiteUsers)
{
if (curUser.Name != "")
_output.Write("<b>{0}</b><br/>", curUser.Name);
else
_output.Write("<b>{0}</b><br/>",curUser.LoginName);
}
}
}
});
} -
Bonjour
En fait, c'est le Membership Provider qui gère cette info, pas SharePoint.
Soit votre provider le gère (par exemple le SqlMembershipProvider) et vous avez configuré la fenê^tre de présence dans le Web.config (attribut userIsOnlineTimeWindow="20" du noeud ), soit vous êtes bon pour le gérer à la main (en gardant en cache, en session, en base, ...) la présence.
Pour info, dans le premier cas (support de la présence, voici le bout de code qui vous sert à récupérer l'utilisateur et retrouver son statut :
Extrait de codeMembershipUser mUser = Membership.FindUsersByName(curUser.LoginName);
_output.Write("Is online : {0}, mUser.IsOnline);
N'hésitez pas à me dire si cela vous a avancé.
-
Bonjour,
Je suis un collègue de Ominius.
Pour la réalisation de ce webpart nous utilisons l'authentification par active directory et non pas par SQL.
La première solution, en utilisant le Membership Provider ne semble donc pas possible dans notre cas.
Concernant la seconde solution, de gérer la connexion manuellement, je ne vois pas comment créer une fonction sous sharepoint qui serait appellée toutes les "n" secondes pour tester le status d'un utilisateur. -
Bonsoir
Vous pouvez vous inspirer de ce qui est expliqué ici : http://msdn2.microsoft.com/fr-fr/library/ms178583(VS.80).aspx et ici : http://blogs.sqlxml.org/bryantlikes/pages/583.aspx
Après, à vous de voir si vous stockez en base, en mémoire ou ailleurs les données.