Bonjour,

Bloqué depuis 2 jours sur ce problème.

Mon but est d'afficher via un webpart des informations client tirées de Navision 2009 (testé aussi sur le R2) gràce aux WebService de Navision.

J'ai testé mon code en dehors de Sharepoint : dans une application Web et dans un Windows Form, et tout fonctionne correctement.

Par contre dès que je veux insérer ce code dans un webpart SharePoint, j'ai le message d'erreur suivant :

System.Net.WebPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

j'ai testé tout ce que j'ai pu trouvé sur le web sans succès ...
notamment le <trust level="full" ...> dans le web.config de l'application Sharepoint ou l'app.config du webpart.

ci dessous mon code :

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
50
51
52
53
54
protected void Page_Load(object sender, EventArgs e)
 {
BasicHttpBinding binding = new BasicHttpBinding();
binding.Name = "Customer_Binding";
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
            binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
            binding.Security.Transport.Realm = "";

            binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
            binding.Security.Message.AlgorithmSuite = SecurityAlgorithmSuite.Default;

            string endPointString = "http://win-nav:7047/DynamicsNav/ws/CRONUS%20International%20Ltd/Page/Customer";
            EndpointAddress endpoint = new EndpointAddress(endPointString);
            ServiceClient.Customer_PortClient service = new ServiceClient.Customer_PortClient(binding, endpoint);

            ListCustomer(service);


}

 private void ListCustomer(ServiceClient.Customer_PortClient service)
        {

try
            {
                service.ClientCredentials.Windows.ClientCredential = new NetworkCredential("xxxxx", "xxxxx", "xxxxx");
                service.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;

                ServiceClient.Customer[] ListCustomers = service.ReadMultiple(null, null, 0);

                DropDownList ddlClient = new DropDownList();

                //ComboBoxItem item;

                ListItem item;

                foreach (ServiceClient.Customer C in ListCustomers)
                {
                    item = new ListItem();
                    item.Value = C.No;
                    item.Text = C.Name;

                    ddlClient.Items.Add(item);
                }

                contentPanel.Controls.Add(ddlClient);
            }
            catch (Exception Ex1)
            {
                contentPanel.Controls.Add(new LiteralControl(Ex1.Message));
            }
}

Si quelqu'un a une idée

Merci d'avance.