2010-12-07 58 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的确。