AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2010, 20:51   #1  
Blog bot is offline
Blog bot
Участник
 
25,644 / 848 (80) +++++++
Регистрация: 28.10.2006
This post is really just a Visual Basic version of this post and this post combined, please read those posts before continuing this post.

As described in the other posts, there are two ways to work with Service References – one is to keep the configuration in a .config file and the other is to do everything from code.


Using the .config file
First I create a Visual Basic Console application and add the two service references as explained in the other posts. Then I copied the ServiceModel part of the .config file from this post and pasted it into (and overwrite) the ServiceModel part of my new .config file.

After that, it is really just to write the code

Module Module1

    Sub Main()
        Dim baseURL As String = "
http://localhost:7047/DynamicsNAV/WS/"

        Dim navWSBinding As New System.ServiceModel.BasicHttpBinding()
        navWSBinding.Security.Mode = ServiceModel.BasicHttpSecurityMode.TransportCredentialOnly
        navWSBinding.Security.Transport.ClientCredentialType = ServiceModel.HttpClientCredentialType.Windows


        Dim systemService As New SystemServiceRef.SystemService_PortClient(navWSBinding, New System.ServiceModel.EndpointAddress(baseURL + "SystemService"))
        systemService.ClientCredentials.Windows.AllowedImpersonationLevel = Security.Principal.TokenImpersonationLevel.Delegation
        systemService.ClientCredentials.Windows.AllowNtlm = True


        Dim companies() As String = systemService.Companies()
        Console.WriteLine("Companies:")
        For Each company As String In companies
            Console.WriteLine(company)
        Next
        Dim cur As String = companies(0)


        Dim customerPageURL As String = baseURL + Uri.EscapeDataString(cur) + "/Page/Customer"
        Console.WriteLine(vbCrLf + "URL of Customer Page: " + customerPageURL)


        Dim customerService As New CustomerPageRef.Customer_PortClient(navWSBinding, New System.ServiceModel.EndpointAddress(customerPageURL))
        customerService.ClientCredentials.Windows.AllowedImpersonationLevel = Security.Principal.TokenImpersonationLevel.Delegation
        customerService.ClientCredentials.Windows.AllowNtlm = True


        Dim customer10000 As CustomerPageRef.Customer = customerService.Read("10000")
        Console.WriteLine(vbCrLf + "Name of Customer 10000: " + customer10000.Name)


        Dim filter1 As New CustomerPageRef.Customer_Filter()
        filter1.Field = CustomerPageRef.Customer_Fields.Country_Region_Code
        filter1.Criteria = "GB"


        Dim filter2 As New CustomerPageRef.Customer_Filter()
        filter2.Field = CustomerPageRef.Customer_Fields.Location_Code
        filter2.Criteria = "RED|BLUE"


        Console.WriteLine(vbCrLf + "Customers in GB served by RED or BLUE warehouse:")
        Dim filters() As CustomerPageRef.Customer_Filter = New CustomerPageRef.Customer_Filter(1) {filter1, filter2}
        Dim customers() As CustomerPageRef.Customer = customerService.ReadMultiple(filters, Nothing, 0)
        For Each customer As CustomerPageRef.Customer In customers
            Console.WriteLine(customer.Name)
        Next


        Console.WriteLine(vbCrLf + "THE END")
        Console.ReadLine()
    End Sub


End Module

In both cases you can change the user used to connect to Web Services by setting service.ClientCredentials.Windows.ClientCredential to an instance of System.Net.NetworkCredential like:

systemService.ClientCredentials.Windows.ClientCredential = New System.Net.NetworkCredential("user", "password", "domain")

I hope this is helpful.

Good luck

Freddy Kristiansen
PM Architect
Microsoft Dynamics NAV




Подробнее
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:53.