HTTP 伺服器 API 會使用路由資料庫在註冊期間套用存取檢查。 UrlPrefix 的註冊必須通過一系列的存取檢查,以確保註冊命名空間的使用者具有訪問許可權。 使用 HttpAddUrl 函式來新增註冊。
使用 HttpAddUrl 新增註冊
- 如果 UrlPrefix 中的埠號碼為與 UrlPrefix 的協定不同的協定保留或註冊,則註冊會失敗。 無法在相同的埠上支援 HTTP 和 HTTPS。
- 註冊會放入適當的類別中。 存儲桶以 URL 的主機類型為基礎,具體說明在 路由傳入請求 一節中。 以下步驟適用於此特定桶子。
- 如果存在重複的註冊項目,請傳回錯誤碼。
- 選擇協議、主機和埠元件等於 UrlPrefix 的預約條目。 從這些中,找到具有最長 relativeUri 匹配項的項目。 如果條目存在,請根據與該條目相關聯的 ACL 檢查權限,並傳回成功。 如果條目不存在,則回傳ERROR_ALREADY_EXISTS碼。
下列範例說明安裝註冊到路由資料庫的過程。 路由資料庫中存在預留項 1 和 2。
- 預約 1:使用者 A 和使用者 C 的
https://+:80/vroot/subdir/。此預約會放在「+」桶中。 - 預訂 2:使用者 B 的
https://adatum.com:80/vroot/。此項預訂將放置在「指定主機」類別中。 - 註冊:使用者 B
https://+:80/vroot/subdir/因為保留 1 而失敗。 - 註冊
https://adatum.com:80/vroot/subdir/由使用者 B 由於保留 2 的原因而成功。 - 使用者 C 的註冊編號
https://adatum.com:80/vroot/subdir/因為有更明確的預留2而失敗。 強式通配符保留在明確保留或註冊的內容中沒有意義。 - 因為保留 1,使用者 A 的註冊
https://+:80/vroot/subdir/成功。 - 註冊:使用者 B
https://adatum.com:80/vroot/anotherdir/會因為保留 2 而成功。
註冊的存取檢查不包含委派許可權的檢查。 沒有依據預約進行的存取檢查(請參閱 HttpRemoveUrl)。 刪除註冊的唯一需求,即呼叫程式必須已建立註冊。