2010-12-07 87 views
2

我開始使用DotNetOpenAuth並希望瞭解什麼IAuthenticationRequest接口的以下成員都是爲了他們應如何使用:DotNetOpenAuth IAuthenticationRequest成員解釋請求

IsDelegatedIdentifier: bool 
IsDirectedIdentity: bool 

而且從繼承IHostProcessedRequest接口:

Immediate: bool 

請有人提供一個簡要的解釋嗎?謝謝。

+0

此外,爲什麼以及何時由我的提供者接收IAnonymousRequest而不是IAuthenticationRequest? – Confused 2010-12-07 16:24:23

回答

2

這些都是直接來自OpenID 2.0 spec的概念,所以你可以參考那裏的完整答案。順便說一下,DotNetOpenAuth中包含一個.chm doc文件,它也記錄了這些成員。

但這裏是你問的:指示用戶是否託管自己的OpenID標識符然後委託給你提供

IsDelegatedIdentifier的值。 DotNetOpenAuth通常不需要做任何特殊的事情來處理所有的事情。但如果您有禁止委派的政策,這將提供方式。

IsDirectedIdentity一個值,指示用戶/ RP是否已經知道他們期望找回的聲明的標識符。如果false,他們已經知道,你(提供者)需要簡單地驗證登錄用戶控制該標識符;如果true您需要作爲Provider來確定哪個用戶已登錄,並將ClaimedIdentifier屬性設置爲適合該用戶的值。

Immediate指示您是否必須立即決定是否批准RP請求的值。如果true您不允許與用戶交互,您可能不會顯示用戶界面,您只能將您的決定重定向回RP。如果false您可能會要求用戶登錄,要求他們確認等。在即時模式下,如果您無法確定用戶是誰或用戶是否信任RP,則應始終返回拒絕響應。

IAnonymousRequest進來,而不是IAuthenticationRequest當RP 要聲明的標識符在所有的,而是隻想所包含成OpenID請求擴展響應。換句話說,他們不想知道誰是的用戶,他們只是想知道他們。這些類型的請求在OpenID規範中有描述,但在實踐中並不常見,實際上大多數OpenID庫甚至不支持它們。 DotNetOpenAuth的確。