使用者驗證
在 Steam 中,當用戶端啟動遊戲時,使用者一律處於「已登入」狀態。除了初始化 API 之外,遊戲不需要做任何事就能隨時存取使用者的 Steam ID。Steam 中的驗證是指檢查使用者的預設身分是否確實為已登入啟動遊戲之用戶端的使用者的程序,其方式是使用ISteamUser API 搭配工作階段票證 (搭配點對點或專用伺服器)、加密的應用程式票證 (搭配安全伺服器),或 Steam Web API。驗證之後,Steam Web 或 ISteamUser API 可以使用票證來驗證目前遊戲或其可下載內容 (DLC) 的擁有權。
在 XBOX Game Development Kit (GDK) 中不需要此驗證步驟,因為您在依照初始化 XBOX Game Development Kit (GDK) 中的步驟將使用者登入時,就已經完成驗證。因此,XBOX Game Development Kit (GDK) 沒有與 Steam 工作階段票證或加密應用程式票證對應的功能,可為多人遊戲工作階段驗證使用者的身分。
擁有權與數位版權管理 (DRM)
若要確認使用者擁有其目前正在遊玩之遊戲的權利,您需要使用XStore API 中的 XStoreQueryGameLicenseAsync 函式,檢查使用者是否擁有遊玩該遊戲的授權。在非同步回呼中,檢查是否:
- 查詢成功 (也就是說,使用者擁有授權)。
- 從
XStoreQueryGameLicenseResult提供的授權仍然有效。
ISteamUser/CheckAppOwnership,或使用應用程式票證呼叫 SteamEncryptedAppTicket::BIsTicketForApp。
如需執行此檢查的詳細資訊和程式碼範例,請參閱 XStore:基本 DRM 與授權檢查。此主題也提供更強固的授權檢查選項相關資訊,這些選項可防止透過竄改來略過此用戶端檢查。
Steam 也提供 DRM 包裝函式,而 XBOX Game Development Kit (GDK) 沒有與之對應的功能。Microsoft Store 會在啟動從其安裝的應用程式時執行反盜版檢查。如需完整的 DRM 保護,除了執行連結之程式碼範例中的授權檢查之外,我們還建議使用協力廠商解決方案。
檢查 DLC 的擁有權
如果您的遊戲有相關聯的 DLC,您可以使用XStore API 檢查使用者的 Microsoft Store 帳戶是否可以存取某個項目。若要檢查這些授權,您首先需要使用 XStoreQueryAssociatedProductsAsync 函式查詢與您遊戲相關聯的所有產品,然後使用 XStoreAcquireLicenseForPackageAsync 函式 (類似於 ISteamUser/CheckAppOwnership 或 ISteamUser::UserHasLicenseForApp 函式),取得查詢所傳回清單中特定 DLC 項目的授權。
與檢查遊戲的權利一樣,您需要查看是否已成功取得授權,以及授權是否有效。如果兩項檢查都通過,您就可以視為使用者已獲授權存取該 DLC 項目。如需此程序的程式碼範例,請參閱管理及授權選用套件 (DLC)。
