Blog Null Reference Exception
Při provozování ASP.NET webových aplikací řešíme vždy současně s jejím nasazením i její konfiguraci z hlediska práv pro přístup k lokálním nebo sítových zdrojům. Přitom se může jednat o přístup k souborům nebo například připojení k SQL Server databázi. Podíváme se podrobněji pod jakými identitami a Windows účty aplikace k těmto zdrojům přistupuje a jaké jsou možnosti nastavení IIS.
Tento článek má za úkol uvést, shrnout nebo pro někoho možná jen zopakovat všechna důležitá fakta ohledně impersonace a její používání v ASP.NET a WCF aplikacích.
V systému Windows 8 je Windows Virtual PC z Windows 7 nahrazen za Hyper-V. Tím nyní máme i na klientech tuto hlavní Microsoft virtualizační technologii, která byla dosud dostupná pouze na serverech. Důvodem pro tuto změnu bylo to, že na starší Microsoft virtualizační technologii není možné hostovat virtuály 64 bitových systémů.
Pokud dynamicky měníte velikost buňky v Silverlight DataGrid kontrolu, narazíte na problém, že výška řádku data gridu se podle potřeby správně zvětšuje, ale už se zpátky nezmenšuje.
S příchodem .NET Frameworku 4.5 vyjde i nová verze technologie Windows Identity Foundation (WIF). Zatímco verze WIF 1.0 je k dispozici jako samostatný instalační balíček, který obsahuje assembly Microsoft.IdentityModel.dll pro .NET 3.5 nebo 4.0, verze WIF 4.5 je nyní kompletně integrována do .NET Frameworku 4.5. Koukneme se na rozdíly v architektuře a v API.
Jazyk C# rozlišuje dva typy porovnávání - porovnání referenční (reference equality) a hodnotové (value equality). Hodnotové porovnávání se chápe tak, že dva objekty jsou shodné pokud tyto objekty představují stejnou hodnotu, referenční se chápe tak, že dvě reference jsou shodné pokud odkazují na stejný objekt (tj. stejnou instanci). Pro referenční porovnávání se používá metoda ReferenceEquals, pro hodnotové metoda Equals (případně statická metoda Equals).
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é.
Minule jsme skoro dokončili naší ukázkovou ASP.NET aplikaci pro přístup k souborům (její kompletní zdrojové soubory jsou k dispozici zde). V této poslední části doplníme ještě ošetření případných chyb aplikace a vytvoříme vlastní stránky pro Error a 404 (NotFound).
V této předposlední části naší ukázkovou aplikaci z minula v podstatě dokončíme implementací stránky Default.aspx, která bude zobrazovat seznam souborů. A dále do aplikace vložíme handler na stahování souborů.
V první části jsme tvorbu naší ukázkové webové aplikace pro přístup k souborům skončili tím, že jsme vytvořili Mater Page a dvě stránky Default a Login, které budeme postupně doplňovat. V této části dokončíme stránku Login, přidáme kód pro přihlášení a provedeme potřebné nastavení ve Web.config souboru.