2016-04-02 34 views
0

我創建了一個新的asp.net web應用程序,我使用adfs進行身份驗證。然後,我使用此Web應用程序與Dynamics AX交談。 Inside Dynamics Ax我創建了類和服務,並將它們作爲Dynamics AX內部的「入站端口」發佈到IIS。 我可以將Visual Studio中的服務引用添加到已發佈的服務(通過https並要求使用域憑據)。 服務引用工作正常,我可以跟Dynamics AX中使用以下我的應用程序:轉發adfs登錄到Dynamics AX

ServiceTestClient client = new ServiceTestClient(); 
client.ChannelFactory.Credentials.UserName.UserName = @"domain\user"; 
client.ChannelFactory.Credentials.UserName.Password = @"password"; 

一切工作只是罰款這樣的,我可以讀取和寫入AX到/。 但我當然想要使用我通過adfs登錄應用程序時輸入的憑據。 但我的問題是,我真的不知道該怎麼做。我如何將已獲得的索賠或令牌轉發給Dynamics AX?

我敢肯定,我必須改變我目前在AX中使用的綁定和clientCredentialtype。 一旦我添加在Visual Studio中的服務引用我得到以下里面的web.config:

<basicHttpBinding> 
    <binding name="serviceEndpoint"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    <binding name="BasicHttpBinding_ServiceTest"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 

所以現在的問題是,結合和clientcredentialtype我應該使用內AX什麼類型? 如何將adfs令牌/憑證添加到我創建的客戶端? 也許我完全誤解了該怎麼做,如果是的話,我會很樂意地接受正確方向的指針。

回答

0

如果有人需要答案,我在AD/DAX中創建了一箇中間用戶,該用戶有權與HTTPS綁定通話,但無法訪問DAX。然後,我將呼叫上下文設置爲從adfs令牌獲得的用戶。

因此,中間用戶的/ pass存儲在web.config中,並且通過adfs進行身份驗證的用戶是在Dax內執行操作的用戶。