Windows Identity Foundation: Extension metody pro verzi 1.0

Tomáš Holan       26. 7. 2012       WIF       5248 zobrazení

Pokud používáte ve své aplikaci technologii WIF v současné verzi pro .NET Framework 3.5/4.0 (verze 1.0), brzy zjistíte, že dotazování na claims obsažené v objektu ClaimsIdentity resp. ClaimsPrincipal je poměrně složité (je nutné použít buď LINQ dotaz nebo foreach cyklus).

Po integraci WIF přímo do .NET Frameworku v připravované verzi 4.5 (nyní k dispozici v RC) dojde v tomto k výraznému posunu. A mezitím než se tak stane jsem připravil extension metody, které portují metody nové verze i do verze současné.

Metody jsem umístil do třídy ClaimsPrincipalExtensions, jejíž kód je k dispozici k prohléhnuti a stažení zde. Soubor ClaimsPrincipalExtensions.cs stačí přidat do VS projektu a pro použití doplnit příslušný using:

using Microsoft.IdentityModel.Claims;

Doplněné jsou konkrétně tyto metody:

  • FindAll – Vyhledání všech claims určeného typu nebo claims vyhovující predikátu.
  • FindFirst – Vyhledání prvního claimu určeného typu nebo claim vyhovující predikátu.
  • HasClaim – Zjištění, zda identity/principál obsahuje claim určený jeho typem a hodnotou nebo vyhovující predikátu.
  • GetClaims – Vrací kolekci claims ze všech identit objektu ClaimsPrincipal (pouze na objektu principál).

Tyto metody jsou dostupné u objektu identity pro interface IClaimsIdentity a na objektu principál přímo pro interface IPrincipal, který je vždy interně převeden na objekt ClaimsPrincipal. Nové metody jsou tedy dostupné na libovolném objektu principál, stejně jako tomu bude v nové verzi WIF 4.5 (v té každý principál objekt dědí rovnou ze třídy ClaimsPrincipal).

Typické použití nového objektového modelu pak může například v ASP.NET aplikaci vypadat takto:

lblEmail.Text = HttpContext.Current.User.FindFirst(ClaimTypes.Email).Value;

Dokumentaci k novým metodám naleznete zde.

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback