DotNetOpenAuth Образцы проблемы получают правильный контекст безопасности

Я просматриваю образцы dotNetOpenAuth (OpenIdRelyingPartyMVC и OpenIdProviderMvc) и придумываю вопрос для лучшего понимания...

В приложении MembersArea приложения Relying Party я использую OpenID "http://localhost:4864/user/bob3. Я перенаправляюсь на страницу входа поставщиков, где я использую учетные данные Bob 5. После успешного входа в систему я перенаправляюсь обратно в RelyingParty, который говорит" Поздравляем Bob3...".

Это просто ошибка привязки в приложении Relying Party, которая принимает OpenID, который был отправлен Поставщику, или я аутентифицирован в контексте безопасности Bob3 с учетными данными Bob5, которые будут серьезной проблемой безопасности в моем мнение, поскольку я могу аутентифицироваться как кто бы я ни хотел, только с одной рабочей учетной записью у поставщика.

Ответ 1

Я думаю, вы используете устаревшую ветку, которая содержит проблему безопасности, которая была обнаружена 3 года назад:

http://www.zdnet.com/article/dotnet-projects-flawed-sample-code-has-crippling-authentication-exploit/

Код неисправного контроллера: https://github.com/DotNetOpenAuth/DotNetOpenAuth.Samples/blob/master/src/OpenID/OpenIdProviderMvc/Controllers/OpenIdController.cs

Фиксированный код: https://github.com/DotNetOpenAuth/DotNetOpenAuth/blob/develop/samples/OpenIdProviderMvc/Controllers/OpenIdController.cs

Diff исправления: https://github.com/DotNetOpenAuth/DotNetOpenAuth/commit/cdd3e95f4eac8076ffd78641bf4cf61d4422572a

Мне кажется, что ветвь "хозяин" устарела, а ветвь "развивать" - это та, которую мы должны использовать.