2010-12-07 5 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, поэтому вы можете обратиться туда за полным ответом. И, кстати, есть файл .chm doc, который включен в DotNetOpenAuth, который также документирует эти элементы.

Но вот то, что вы просите:

IsDelegatedIdentifier Значение, указывающее, является ли пользователь принимает свой собственный идентификатор OpenID, что тогда делегаты вашего провайдера. Обычно не нужно что-то делать, поскольку DotNetOpenAuth заботится обо всем для вас. Но в случае у вас была политика запрещения делегирования, это обеспечило бы путь.

IsDirectedIdentity Значение, указывающее, знает ли пользователь/RP, какой заявленный идентификатор они ожидают вернуть. Если false, они уже знают, и вам (Поставщику) необходимо просто убедиться, что зарегистрированный пользователь контролирует этот идентификатор; если true вам необходимо в качестве Провайдера, чтобы определить, какой пользователь входит в систему, и установите для свойства ClaimedIdentifier значение, подходящее для этого пользователя.

Immediate Значение, указывающее, следует ли немедленно принять решение об утверждении или отказе от запроса RP. Если true вам не разрешено взаимодействовать с пользователем, вы не можете отображать пользовательский интерфейс, вы можете перенаправить обратно в RP с вашим решением. Если false вы можете попросить пользователя войти в систему, попросить их подтвердить и т. Д. Когда вы находитесь в непосредственном режиме, если вы не можете быть уверены, кто пользователь, или пользователь доверяет RP, вы всегда должны возвращать ответ deny.

IAnonymousRequest приходит вместо IAuthenticationRequest когда RP не хочет заявленный идентификатора на всех, но вместо этого просто хочет ответы на расширение запроса OpenID, которые включены. Другими словами, они не хотят знать , кто пользователь, они просто хотят что-то знать около их. Такие запросы описаны в спецификации OpenID, но на практике они редко встречаются, на самом деле большинство библиотек OpenID даже не поддерживают их. DotNetOpenAuth делает.