IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Sharepoint .NET Discussion :

Ajout item a partir de web service


Sujet :

Développement Sharepoint .NET

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 16
    Points
    16
    Par défaut Ajout item a partir de web service
    Bonjour a tous,
    Ça fait deux jours que j'essai de faire un ajout d'un item dans une picture library sans succès avec le même message d'erreur qui apparaît :

    Microsoft.SharePoint.Client.ServerUnauthorizedAccessException: Access is denied. You do not have permission to perform this action or access this resource.
    at Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream)
    at Microsoft.SharePoint.Client.ClientRequest.ProcessResponse()
    at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()
    at MobileWS.DAL.PlaintDAO.SetPlaint(Plaint Plaint) in C:\inetpub\wwwroot\MobileWS\MobileWS\DAL\PlaintDAO.cs:line 85
    at MobileWS.BLL.PlaintManager.SetPlaint(Plaint Plaint) in C:\inetpub\wwwroot\MobileWS\MobileWS\BLL\PlaintManager.cs:line 13
    at MobileWS.JazanWS.SetPlaint(String Img, String TITLE, String CITY, String ADDRESS, String ZONE, String STREET, String MOBILE, String PHONE, String TYPEPLAINT, String FILENAME, String MESSAGE, String MAIL) in C:\inetpub\wwwroot\MobileWS\MobileWS\JazanWS.asmx.cs:line 231
    voici le code source :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    public static void SetItem(Plaint Plaint)
            {
                ClientContext ctx = new ClientContext("http://SiteAddress");
                System.Net.WebRequest request = System.Net.HttpWebRequest.Create("http://SiteAddress:Port/WS.asmx?op=SetItem");
     
                request.UseDefaultCredentials = true;
                request.PreAuthenticate = true;
                request.Credentials = new System.Net.NetworkCredential("login", "Password");
                //request.Credentials = System.Net.CredentialCache.DefaultCredentials;
     
                System.Net.WebResponse response = request.GetResponse();
                Web web = ctx.Web;
                Folder docSetFolder = web.GetFolderByServerRelativeUrl(ctx.Url + "/lstItems");
                ctx.ExecuteQuery();
     
                string documentUrl = "/lstItems/" + FILENAME;
                FileCreationInformation fci = new FileCreationInformation();
                fci.Url = documentUrl;
                fci.Content = System.IO.File.ReadAllBytes(HttpContext.Current.Server.MapPath("~/UPLOADS/") + FILENAME);
     
                //get the folder's file collection
                FileCollection documentFiles = docSetFolder.Files;
                ctx.Load(documentFiles);
                ctx.ExecuteQuery();
     
                Microsoft.SharePoint.Client.File newFile = documentFiles.Add(fci);
                ctx.Load(newFile);
                ListItem item = newFile.ListItemAllFields;
                ctx.Load(item);
     
     
                //start setting metadata here
                string contentTypeId = string.Empty;
                item["Title"] = Plaint.FILENAME;
                item["City"] = Plaint.CITY;
                item["Adress"] = Plaint.ADDRESS;
                item["Zone"] = Plaint.ZONE;
                item["Street"] = Plaint.STREET;
                item["Mobile"] = Plaint.MOBILE;
                item["Phone"] = Plaint.PHONE;
                item["MESSAGE"] = Plaint.MESSAGE;
                item["Mail"] = Plaint.MAIL;
                item["ContentTypeId"] = contentTypeId;
                item["TypePlaint"] = Plaint.TYPEPLAINT;
     
                item.Update();
     
                ctx.ExecuteQuery();
            }
    Quelqu'un aurait-il une idée de l'origine de l'erreur?

  2. #2
    Membre averti
    Homme Profil pro
    Consultant SharePoint
    Inscrit en
    Mars 2006
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SharePoint
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 270
    Points : 308
    Points
    308
    Par défaut
    L'utilisateur qui exécute ton code, il est contributeur sur la picture library ?

    Sinon tu mixe du Client Context (Modèle objet client C#) et des appels WebServices... regarde de ce coté là :
    http://msdn.microsoft.com/fr-fr/libr...code-snippet-1

  3. #3
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Pourquoi ne pas utiliser les crédentials de l'utilisateur courant ?
    MSDN
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Le problème est résolue:

    J'ai tout simplement donner les Credentials au ClientContext et non pas au Webrequest :

    C'est a dire j'ai remplace ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.Credentials = new System.Net.NetworkCredential("login", "Password");
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctx.Credentials = new System.Net.NetworkCredential("login", "Password");
    et j'ai enlevé tout ce qui se rapporte au WebRequet de mon code.

    Ça marche très bien maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 4] afficher résultat a partir du web services
    Par mariem deve dans le forum Langage
    Réponses: 4
    Dernier message: 10/06/2015, 13h14
  2. Ajout term dans termstore via web service sur webapp anonyme
    Par James Dt dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 05/07/2013, 09h27
  3. Ajouter dans VS des projets "Web Service"
    Par achestyx dans le forum Visual Studio
    Réponses: 4
    Dernier message: 19/05/2009, 21h23
  4. Réponses: 1
    Dernier message: 27/12/2008, 11h59
  5. obtenir @ IP client à partir de web service
    Par ansoni dans le forum Services Web
    Réponses: 1
    Dernier message: 26/12/2007, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo