DotNetOpenAuth IAuthenticationRequest成员解释请求

时间:2010-12-07 15:41:37

标签: openid dotnetopenauth openid-provider

我开始使用DotNetOpenAuth,并希望了解IAuthenticationRequest接口的以下成员的用途以及如何使用它们:

IsDelegatedIdentifier: bool
IsDirectedIdentity: bool

从继承的IHostProcessedRequest接口:

Immediate: bool

请有人提供简要说明吗?感谢。

1 个答案:

答案 0 :(得分:2)

这些都是直接来自OpenID 2.0 spec的概念,因此您可以在那里找到完整的答案。顺便说一句,DotNetOpenAuth附带了一个.chm doc文件,该文件也记录了这些成员。

但这就是你所要求的:

IsDelegatedIdentifier 一个值,指示用户是否托管自己的OpenID标识符,然后委托给您的提供商。通常不需要做任何特别的事情,因为DotNetOpenAuth会为您处理所有事情。但如果你有一个不允许授权的政策,这将提供方法。

IsDirectedIdentity 一个值,指示用户/ RP是否已经知道他们期望返回的声称标识符。如果false,他们已经知道并且您(提供者)需要简单地验证登录用户是否控制该标识符;如果true需要作为提供者来确定登录的用户,并将ClaimedIdentifier属性设置为适合该用户的值。

Immediate 一个值,指示您是否必须立即就批准或拒绝RP请求做出决定。如果true您不允许与用户互动,则可能无法显示用户界面,您可能只会根据您的决定重定向回RP。如果false您可以要求用户登录,请他们确认等。当处于即时模式时,如果您无法确定该用户是谁或用户是否信任该RP,您应该始终返回否认回应。

当RP 根本不想要声明的标识符时,

IAnonymousRequest代替IAuthenticationRequest,而只是希望响应包含的OpenID请求扩展。换句话说,他们不想知道用户是谁,他们只是想知道关于他们的事情。 OpenID规范中描述了这些类型的请求,但在实践中并不常见,实际上大多数OpenID库甚至都不支持它们。 DotNetOpenAuth可以。