20.08.2012, 14:34 | #1 |
Возьми свет!!!
|
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 Я могу взорвать вам мозг!!! |
|
|
|