繁体   English   中英

使用 MS Crm Web 服务进行身份验证

[英]Authenticate with MS Crm Web Service

我正在寻找一种通过 Microsoft CRM 4.0 Web 服务 API 对用户进行身份验证的方法(给定用户名和密码)。 理想情况下,我想根据登录用户有权访问的项目来筛选项目列表。 我可能能够弄清楚第二部分,但我找不到对用户进行身份验证的方法。 目前在 web 服务中制作所有 cal 的方式是:

MyWebServices.CrmService svc = new MyWebServices.CrmService();
MyWebServices.CrmAuthenticationToken token = new MyWebServices.CrmAuthenticationToken();
token.OrganizationName = "MyCRM";
token.AuthenticationType = 0;
svc.CrmAuthenticationTokenValue = token;
svc.PreAuthenticate = true;
svc.Credentials = System.Net.CredentialCache.DefaultCredentials;
svc.Credentials = new NetworkCredential("hj", "mypass", "mydomain");

然后可以通过服务进行调用。 我想我可能会尝试通过用户的用户名/密码对 CRM 进行身份验证,但不知何故感觉不对。

如果您在本地环境中,您应该能够使用以下代码来获取可用于检索您的项目的有效 CRM 服务。

public static Microsoft.Crm.SdkTypeProxy.CrmService GetCrmService(string crmServerUrl, string organizationName, System.Net.NetworkCredential networkCredential)
{
    // Setup the Authentication Token
    CrmAuthenticationToken crmAuthenticationToken = new CrmAuthenticationToken
                                           {
                                               OrganizationName = organizationName,
                                               AuthenticationType = 0
                                           };

    var crmServiceUriBuilder = new UriBuilder(crmServerUrl) { Path = "//MSCRMServices//2007//CrmService.asmx" };

    // Instantiate a CrmService
    var crmService = new Microsoft.Crm.SdkTypeProxy.CrmService
    {
        Url = crmServiceUriBuilder.ToString(),
        UseDefaultCredentials = false,
        Credentials = networkCredential,
        CrmAuthenticationTokenValue = crmAuthenticationToken
    };

    return crmService;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM