我开始使用 DotNetOpenAuth 并想了解 IAuthenticationRequest 接口的以下成员的用途以及应如何使用它们:
IsDelegatedIdentifier: bool
IsDirectedIdentity: bool
并从继承的 IHostProcessedRequest 接口:
Immediate: bool
请有人提供一个简短的解释吗?谢谢。
我开始使用 DotNetOpenAuth 并想了解 IAuthenticationRequest 接口的以下成员的用途以及应如何使用它们:
IsDelegatedIdentifier: bool
IsDirectedIdentity: bool
并从继承的 IHostProcessedRequest 接口:
Immediate: bool
请有人提供一个简短的解释吗?谢谢。
这些都是直接来自OpenID 2.0 规范的概念,因此您可以参考那里的完整答案。顺便说一句,DotNetOpenAuth 中包含一个 .chm 文档文件,该文件也记录了这些成员。
但这是你要求的:
IsDelegatedIdentifier
一个值,指示用户是否托管他自己的 OpenID 标识符,然后委托给您的 Provider。通常不需要您做任何特别的事情,因为 DotNetOpenAuth 会为您处理所有事情。但是,如果您有禁止委派的政策,这将提供方法。
IsDirectedIdentity
一个值,指示用户/RP 是否已经知道他们期望返回的声明标识符。如果false
,他们已经知道并且您(提供者)需要简单地验证登录用户是否控制该标识符;如果true
您需要作为 Provider 来确定登录的用户,并将 ClaimedIdentifier 属性设置为适合该用户的值。
Immediate
一个值,指示您是否必须立即就批准或拒绝 RP 请求做出决定。如果true
您不允许与用户交互,您可能不会显示 UI,您只能根据您的决定重定向回 RP。如果false
您可能要求用户登录、要求他们确认等。在即时模式下,如果您无法确定用户是谁或用户是否信任 RP,则应始终返回拒绝响应。
IAnonymousRequest
而不是IAuthenticationRequest
当 RP根本不想要声明的标识符时,而是只想要对包含的 OpenID 请求扩展的响应。换句话说,他们不想知道用户是谁,他们只想知道一些关于他们的事情。这些类型的请求在 OpenID 规范中有所描述,但在实践中并不常见,事实上大多数 OpenID 库甚至都不支持它们。DotNetOpenAuth 可以。