2010-10-25 24 views
1

我有一個RESTlike API,我想從Silverlight訪問。它需要支持以下內容:如何爲此API構建clientaccesspolicy.xml?

  • 所有請求都通過SSL由
  • 允許GET,POST,PUT,DELETE(或者隨便什麼)
  • 允許任何請求頭
  • 允許從任何主機的請求

非常開闊。我對文檔有點困惑,所以有人可以看看它的樣子嗎?

回答

3

東西寬敞,但只允許https而不是http,看起來像這樣,會需要被命名爲clientaccesspolicy.xml,並放置在網站根目錄:

<?xml version="1.0" encoding="utf-8" ?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="*" http-methods="*"> 
     <domain uri="https://*" /> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true"/> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

如果你想允許HTTP和HTTPS訪問,你需要在明確的列出二者的允許,從節點,因爲它是選擇加入和一個簡單的*通配符不適用於SSL。

編輯:根據John的評論添加http-methods="*"以允許GET和POST以外的方法。

+0

你知道我是否需要向allow-from元素添加http-methods =「*」嗎? – 2010-10-25 23:05:54

+0

嘿,約翰,你是對的。如果您不添加http-methods =「*」,則只允許GET和POST ...這是我的疏忽。我會更新我的答案。如果您好奇,請在此處找到相關信息:http://msdn.microsoft.com/zh-cn/library/cc645032(VS.95).aspx – 2010-10-26 15:43:32