2015-04-30 33 views
0

我正在評估ComponentSpace與手動滾動的SAML庫。我已經閱讀了從封面到封面的文檔。ComponentSpace SAML - 在簽署和發送前增加AuthnRequest XML

到現在爲止,它證明比手動寫入請求節省更多時間,但是我的IDP使用samlp:Extensionssamlp:Issuer元素上的附加屬性。

如果在簽名和「發送」之前有方法訪問和擴充生成的XML文檔,那將很方便。

我們的IDP也使用這個lib(顯然),因爲他們使用所有這些額外的XML節點,我假設有一種方法。只是看不到它。

謝謝,盧克

回答

2

在情況下,它可以幫助任何人,這是如何添加擴展:

AuthnRequest authnRequest = new AuthnRequest(); 
var doc = new XmlDocument(); 
doc.LoadXml("<myCustomField>123</myCustomField>"); 
authnRequest.Extensions = new Extensions(); 
authnRequest.Extensions.Data = doc.ChildNodes; 
0

我會通過它來更新。

ComponentSpace SAML有一個低級的API,你會發現一個AuthnRequest類型可以用來建立你的請求。

該類型具有.Extensions屬性,該屬性需要構造函數採用XmlElementExtensions類型。

至於SPProviderID元素,它可以作爲參數提供給Issuer類型的構造函數,然後可以通過AuthnRequest.Issuer屬性進行設置和應用。

0

關於您的評論,盧克說:「如果在簽名和發送之前有辦法訪問和擴充生成的XML文檔,那將很方便。」,這是我們將研究的內容。

我們建議儘可能使用SAML高級API,因爲這意味着必須將更少的代碼寫入應用程序。另外,我們建議儘可能避免使用擴展名。但是,有時您需要在典型用例之外進行某些操作,然後才需要恢復到低級API。我們將考慮將您建議的支持添加到高級API。謝謝。

+0

其實,這是所有可能的低級別的API中。您可以構建請求並獲取XmlElement。遠遠不止這些擴展,我們使用的IDP(在我們的行業中使用)充分利用了擴展。 –

+0

在CS文檔中(我有),使用低級API來構建請求不顯示。我們的IDP非常好,可以使用您的lib來共享演示,這非常棒。 –