Показать сообщение отдельно
Старый 20.08.2012, 14:34   #1  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Web Service Sharepoint и вход по имени пользователя чере Net Business Connector
Доброго времени суток!!!
Помогите пожалуйста кто чем может.
Ситуация такая, написал я для того чтобы на EP была возможность использовать технологию Ajax - веб-службу.
Код довольно простой, веб-служба создает net business connector соединение к аксапте и запращивает данные из аксапты из таблицы(в будущем будет вызов методов аксапты) но все бы хорошо если бы не вот такая неприятность.

метод logon на объекте axapta() не отрабатывает, logonAs отрабатывает если указать там конкретного пользователя, что собственно не устраивает, т.е. хотелось бы сделать таким образом чтобы axapta(net bc) запускался под тем пользоваетелем который заходит на узел sharepoint.
Вот собственно код самого сервиса


Код:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.Dynamics.BusinessConnectorNet;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
namespace WebServiceTest
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [System.Web.Script.Services.ScriptService]
 
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    public class Service1 : System.Web.Services.WebService
    {              
        [WebMethod]
        public DataSet GetCounty(String controlName,String region)
        {
            String result = "";
            Axapta ax;
            Boolean b = true;            
            System.Data.DataTable table = new DataTable("Answer");
            DataColumn                      column;
            DataRow                         row;
            DataSet                         set;
            int countI = 0;
            // Create new DataColumn, set DataType, 
            // ColumnName and add to DataTable.    
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "controlName";
            column.ReadOnly = true;     
            table.Columns.Add(column);
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "htmlResult";
            column.ReadOnly = true;
            table.Columns.Add(column);
 
            set = new DataSet();
            set.Tables.Add(table);           
            // Visualize DataSet.                      
            ax = new Axapta();
            System.Net.NetworkCredential nc = new
            System.Net.NetworkCredential("xxxxxxxx", "xxxxx");
            //nc = System.Net.CredentialCache.DefaultCredentials.GetCredential(new Uri("http://test:800/sites/barsaxapta"),"Basic");
 
            try
            {
                ax.LogonAs("xxxxxx","BARS",nc , null, null, null, null);                
            }
            catch (Exception e)
            {
                result = "#Ошибка подключения " + nc.UserName + "\n";
            }
            if (b)
            {
                AxaptaRecord axRecord = ax.CreateAxaptaRecord("AddressCounty");
                axRecord.ExecuteStmt("select CountyId,Name from %1 where %1.StateId == '" + region + "'");
                countI = 0;
                while (axRecord.Found)
                {                   
                    result = result + axRecord.get_Field("CountyId") + "#" + axRecord.get_Field("Name") + "\n";                                          
                    countI++;
                    axRecord.Next();
                }
                axRecord.Dispose();               
                ax.Logoff();
            }
            row = table.NewRow();
            row["controlName"] = controlName;
            row["htmlResult"] = result;
            table.Rows.Add(row);
            return set;
        }
    }
}
Может настроить что то где то надо?
Или есть возможность хотя бы получить эти самые DefaultNetworkCredential потому что не получается...
Пж-ста помогите!!!!
DAX 4.0
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!