Články autora Tomáš Holan
Technologie Windows Identity Foundation (WIF) (dříve také znám pod označením projekt “Geneva”) již nějakou tu chvilku existuje, a to zatím v podobě přídavné knihovny. Dá se předpokládat, že většího rozšíření této technologie se pravděpodobně dočkáme až se stane součástí přímo .NET Frameworku tj. až ve verzi .NET Frameworku 4.5. Dnes si ukážeme pro ní možná trochu netradiční použití - příklad jednoduché webové aplikace, která využívá WIF jako náhradu za Forms autentizaci.
Jeden z nejčastěji používaných způsobu řešení autentizace v ASP.NET aplikacích je použití Forms autentizace (Forms Authentication) v kombinaci s membership providerem.
To co v případě jakéhokoliv membership providera zůstává přitom stále stejné je právě mechanizmus vlastní forms autentizace tj. ověřování jednotlivých klientských requestů na základě vystaveného Forms autentizačního tiketu ukládaného v cookie. Tento proces si rozebereme trochu podrobněji.
Pokud potřebujeme nějaké operaci poskytnout data, občas se hodí, aby tyto data byla dostupná kdekoliv v kódu implementující danou operaci bez nutnosti předávat je parametrem apod. Platnost těchto dat je přitom ale logicky omezena jen na dobu vykonávání dané operace, takže by nebylo vhodné nebo při paralelním zpracování dokonce ani možné použití obyčejné statické proměnné. Za předpokladu, že je celé zpracování operace vykonáváno jen na jednom threadu, je docela elegantním řešením zavést kontext svázaný právě přímo s threadem.
Pokud v aplikaci zapisujeme nějakou událost do aplikačního EventLogu měli by jsme mít na paměti, že velikost zapisované zprávy je omezená. Pokud zapisujeme jen nějakou kratičkou zprávu není toto problém, pokud se ale jedná o složitěji generovanou zprávu nebo report po dokončení nějakého zpracování je potřeba toto nějakým způsobem ošetřit. V tomto příspěvku uvedu jeden z možných způsobů.
Před nedávnem vyšla veřejná beta verze produktů Visual Studio 11, .NET 4.5, C# 5.0 a už je tedy v celku jasné jaké nové funkce v těchto produktech budou a které nebudou. Nová verze jazyka C# 5.0 bude obsahovat kromě “velkých funkcí”, což je samozřejmě async/await a caller info attributes (u kterých se mi mimochodem vůbec nelíbí jak jsou do jazyka “dolepeny” - vlastní užitečnost této funkce ale nezpochybňuji), i nějaké ty menší. Jednou z těch menších je fix sémantiky foreach cyklu.
To že, u konstruktu try-catch-finally v programovacím jazyce C# se blok finally provádí v případě, kdy vznikne při běhu kódu uvnitř try bloku výjimka, i v případě, kdy kód uvnitř try bloku proběhne korektně je skutečnost jistě velmi dobře známá. Existují ale nějaké případy, kdy se blok finally neprovádí?