none
SPWeb membres : comportement très étrange RRS feed

  • Question

  • Bonjour,

     

    Dans le cadre du développement d'une page SharePoint je mets dans mon code .cs :

     

    Code Snippet

    SPWeb sp_web = SPContext.Current.Web;

    LabelUserName.Text = sp_web.CurrentUser.Name;

     

     

     

    Le label LabelUserName existe et fonctionne très bien si je fais

     

    Code Snippet

    LabelUserName.Text = "Bonjour";

     

     

    Par contre, il me met un message d'erreur "Object reference not set to an instance of an object" à cause du sp_web.CurrentUser.Name;

     

    Ce qui est vraiment très étrange c'est que certaines propriétés fonctionnent, par exemple :

    Code Snippet

    SPWeb sp_web = SPContext.Current.Web;

    LabelUserName.Text = sp_web.CurrentUser.Language;

     

     

    Ou encore sp_web.CurrentUser.ID;

     

    En revanche, énormément de propriétés ne marchent pas, comme CurrentUser, Title ...

     

    Je comprend vraiment pas !

     

    Merci.

    vendredi 19 septembre 2008 09:26

Toutes les réponses

  • Bonjour,

     

    Si sp_web.CurrentUser.Language est accessible et valide, c'est que CurrentUser "fonctionne". Y'a t-il une particularité qui pourrait expliquer que "Name" pose problème (utilisateur sans nom dans l'Active Directory, comme le compte administrateur par exemple, ou encore MemberShipProvider custom, ...) ?

    vendredi 19 septembre 2008 11:46
    Modérateur
  •  

    sp_web.Language fonctionnait, mais en revanche sp_web.CurrentUser me donnait une erreur "Object reference not set to an instance of an object"...

     

    Je ne pense pas que ca vienne d'une particularité AD car la meme page fonctionnait sur certains sites et pas sur d'autres, avec le même utilisateur....

     

    Encore plus étrange, aujourd'hui cela remarche alors que je n'ai touché à rien.... j'y comprend pas grand chose !

    lundi 22 septembre 2008 12:32
  • Ben à priori çà dépend de l'utilisateur sur lequel vous faites le test. Peut-être qu'il y en a qui ont un Name et d'autres pas.

    Il faut essayer de débugger ... en attachant au processus w3wp.exe dans visual studio : http://msdn.microsoft.com/en-us/library/ms916837.aspx et regarder ce qui pose problème.

     

    (Il y a aussi la propriét LoginName)

     

    Voilà

     

    jeudi 25 septembre 2008 12:10
  • Ce qui est bizarre c'est que pour un même utilisateur cela va marcher sur certaines collections de site et pas sur d'autres, donc je ne pense pas que cela soit un problème de renseignement dans l'AD. Il s'agit d'une page aspx dans le dossier _layouts de SharePoint, pour le moment pour éviter les erreurs je fais un try - catch autour de la variable mais le problème c'est que j'ai besoin d'envoyer un mail, et si je ne trouve pas le nom de la personne connectée c'est problématique...

     

    L'exception est "Object reference not set to an instance of an object".

     

    Et si j'ajoute une variable comme sp_web.RequestAccessEmail la j'ai carrement une erreur "Accès refusé"... Mais encore une fois ca dépend des collections de site ! (alors que toutes ont cette valeur définie et non vide...)

     

    Si je fais cela dans un RunWithElevatedPrivileges j'ai toujours le message "Object reference not set to an instance of an object"....

     

     

     

     

    lundi 20 octobre 2008 08:18
  • Essayer d'exécuter la commande (webpart) avec l'administrateur. Si çà marche c'est que c'est un problème de droits.

    Sinon, est-ce que vous avez essayé de debugger ?

     

    lundi 20 octobre 2008 09:55