2011-06-10 105 views
1

我正在尋找一種通過Microsoft CRM 4.0 Web服務API來驗證用戶(給定用戶名和密碼)的方法。理想情況下,我想根據登錄用戶有權訪問哪些項目來篩選項目列表。我可能能夠弄清楚第二部分,但我無法找到驗證用戶的方法。當前在網絡服務中製作的所有卡片的方式是:使用MS Crm Web服務進行身份驗證

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進行身份驗證,但是不知何故,它感覺錯了。

回答

1

如果您處於室內環境,您應該能夠使用以下代碼獲取可用於檢索項目的有效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; 
} 
+1

cchamberlain您好,我有一個類似的問題,這個代碼適用於我的前提,但我試圖使用CRM服務器的URL cloudapp.net從網站還主持在蔚藍的聯繫我的CRM服務器,但儘管在整個 – Jay 2016-08-09 11:40:46

+1

@Jay上傳遞了詳細的AD詳細信息,AD方法似乎仍然無法正常工作對不起,我已經走出了4年左右的動態頻譜。我猜測這是因爲您正在嘗試從非雲端應用程序向雲端應用程序驗證您的本地AD。上面的代碼依賴於您的計算機位於域(網絡憑據)。我的假設是你必須使用他們的OAuth API與CRM跨域進行通信。 https://msdn.microsoft.com/en-us/library/gg327838.aspx – cchamberlain 2016-08-10 14:23:51

相關問題