东宝哥

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
//获取IFD的Webservice
public static CrmService GetIFDCrmService(Guid pageCallerID)
{
CrmAuthenticationToken token;

token = new CrmAuthenticationToken();

token.OrganizationName = ConfigurationSettings.AppSettings["OrgName"];
token.AuthenticationType = 0;
token.CallerId = pageCallerID;

CrmService service = new CrmService();
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
service.CrmAuthenticationTokenValue = token;
service.Url = ConfigurationSettings.AppSettings["CrmDiscoverServiceUrl"] + "//mscrmservices//2007//crmservice.asmx"; //crmurl;

return service;
}


//取得Web服务实例
public static CrmService GetCrmService()
{
String crmServerUrl = ConfigurationSettings.AppSettings["ServerUrl"];
return GetCrmService(crmServerUrl, "CCRM");
}

//取得Web服务实例
public static CrmService GetCrmService(string organizationName)
{
return GetCrmService(null, organizationName);
}

//取得Web服务实例
private static CrmService GetCrmService(string crmServerUrl, string organizationName)
{
CrmAuthenticationToken token = new CrmAuthenticationToken
{
OrganizationName = organizationName
};
CrmService service = new CrmService();
if ((crmServerUrl != null) && (crmServerUrl.Length > 0))
{
UriBuilder builder = new UriBuilder(crmServerUrl)
{
Path = "//MSCRMServices//2007//CrmService.asmx"
};
service.Url = builder.Uri.ToString();
}
service.Credentials = CredentialCache.DefaultCredentials;
service.CrmAuthenticationTokenValue = token;
return service;
}
#endregion

#region 扩展方法增加调用者id,用来过滤权限
public static CrmService GetCrmService(Guid callerId)
{
String crmServerUrl = ConfigurationSettings.AppSettings["ServerUrl"];
return GetCrmService(crmServerUrl, "CCRM",callerId);
}

public static CrmService GetCrmService(string organizationName, Guid callerId)
{
return GetCrmService(null, organizationName, callerId);
}

private static CrmService GetCrmService(string crmServerUrl, string organizationName, Guid callerId)
{
CrmAuthenticationToken token = new CrmAuthenticationToken
{
OrganizationName = organizationName
};

token.CallerId = callerId;

CrmService service = new CrmService();
if ((crmServerUrl != null) && (crmServerUrl.Length > 0))
{
UriBuilder builder = new UriBuilder(crmServerUrl)
{
Path = "//MSCRMServices//2007//CrmService.asmx"
};
service.Url = builder.Uri.ToString();
}

if (ConfigurationSettings.AppSettings["Crm_Impersonation_User"] != null &&
ConfigurationSettings.AppSettings["Crm_Impersonation_Pass"] != null &&
ConfigurationSettings.AppSettings["Crm_Impersonation_Domain"] != null)
{
service.Credentials = new NetworkCredential(
ConfigurationSettings.AppSettings["Crm_Impersonation_User"],
ConfigurationSettings.AppSettings["Crm_Impersonation_Pass"],
ConfigurationSettings.AppSettings["Crm_Impersonation_Domain"]
);
}
else
{
service.Credentials = CredentialCache.DefaultCredentials;
}
service.CrmAuthenticationTokenValue = token;
return service;
}
#endregion

#region 获得当前操作用户
//获得当前操作用户
public static CrmUser GetOperateor(CrmService service)
{
//获得当前操作用户
CrmUser crmuser = new CrmUser();
try
{
//WhoAmIRequest userRequest = new WhoAmIRequest();
//WhoAmIResponse user = (WhoAmIResponse)service.Execute(userRequest);
//crmuser.UserGuid = user.UserId;
Guid systemuserid = service.CrmAuthenticationTokenValue.CallerId;
crmuser.UserGuid = systemuserid;

QueryByAttribute query = new QueryByAttribute();
query.ColumnSet = new AllColumns();
query.EntityName = EntityName.systemuser.ToString();
query.Attributes = new string[] { "systemuserid" };
query.Values = new string[] { systemuserid.ToString() };
BusinessEntityCollection results = service.RetrieveMultiple(query);
systemuser wipQueue = (systemuser)results.BusinessEntities[0];
crmuser.UserName = wipQueue.fullname;
crmuser.UserBusinessName = wipQueue.businessunitid.name;
crmuser.UserBusinessunitid = wipQueue.businessunitid.Value;
}
catch(SoapException ex)
{
crmuser.UserGuid = new Guid();
crmuser.UserName = String.Empty;
}
return crmuser;
}
posted on 2009-12-16 14:05  东宝哥  阅读(515)  评论(0)    收藏  举报