Разница между HttpContext.User.Identity и IClaimsPrincipal

Я новичок в разработке систем идентификации и думаю об использовании принципала утверждений и идентификатора утверждений для авторизации в архитектуре ASP.NET MVC 3 (реализованной на уровне контроллера).

Я вижу несколько реализаций, которые используют HttpContext.User.Identity для авторизации, а некоторые используют IClaimsPrincipal. Насколько я понимаю (плохо) из нескольких сообщений, IClaimsPrincipal — это подход, основанный на утверждениях, для предоставления HttpContext.User.Identity контекста для использования на уровне приложения. В чем разница между этими двумя подходами и какой из них более эффективен, если я использую ADFS 2.0 в качестве службы STS/FP?


person Karthik    schedule 18.12.2012    source источник


Ответы (1)


IClaimsPrincipal — это WIF-расширение IPrincipal. IClaimsPrincipal предлагает набор IClaimsIdentity, и аналогично IClaimsIdentity наследует IIdentity.

Если вы используете WIF в ASP.NET, IClaimsPrincipal/IClaimsIdentity и HttpContext.User.Identity фактически являются одним и тем же подходом. В рамках конвейера аутентификации WIF установит для вашего HttpContext.User.Identity значение IClaimsIdentity, чтобы вы могли получить к нему доступ следующим образом:

IClaimsIdentity claimsId = HttpContext.User.Identity as IClaimsIdentity;
person Andrew Lavers    schedule 20.12.2012