asp.net 2.0 a c# - 959
962
Kapitola 26 - Vlastní poskytovatelé členství
Třídy jako jsou MembershipUser bohužel neumožňují přístup k některým informacím - neumožňují napří klad přístup k heslu. Z tohoto důvodu je tedy nemůžete přímo použít k serializaci X L - serializace X L M M požaduje, aby všechny vlastnosti a členové, které potřebujete, byli ukládáni jako veřejní. Vytvořte si tedy vlast ní reprezentaci uživatelů a rolí jako utilitové třídy (utility classes) pro podpůrné úložiště. Tyto třídy nikdy nebudou předány aplikaci. Aplikace se totiž spoléhá na existující členské třídy. (Nějakou mapovací logiku pak začleníte mezi interní reprezentaci uživatele a třídu MembershipUser, což je celkem snadné.) Obrázek 26-2 ukazuje celkový návrh řešení vašeho vlastního poskytovatele. Tí a řd RoleStore ~T :?j CurrsntStore Rl o* w Tí a řd Sm t R t l po oa Třida X I e brhp mMm es i . - M miPvU > m rt r k r í eo p Třida RoleProvider • RWvr » o rf ol e Uživatelé Tí a řd Sm lUe i pe sr "3 CurrentStore * Třida UserStore
Obrázek 26-2. Návrh řešení vašeho vlastního poskytovatele. |ak už bylo zmíněno, třídy SimpleUser a SimpleRole jsou právě těmi třídami, které umožňují provádět serializaci XML. Ačkoliv pro podporu MembershipUser je potřebná nějaká mapovací logika, celkový proces imple¬ mentace toto velmi usnadňuje. UserStore a RoleStore jsou utilitové třídy pro zapouzdření přístupu k souboru XML. Tyto třídy zahrnují nejenom funkce pro načítání a ukládání souborů XML, ale také i některé základní utilitové funkce pro vyhledávání informací v úložišti. Model obsahuje třídy XmlMembershipProvider a XmlRoleProvidcr. XmIMembershipProvider dědí základní funkčnost z MembershipProvider, třída XmIRoleProvider je zděděna z RoleProvider. Obě třídy jsou defino¬ vány ve jmenném prostoru System. Web.Security. Návrh a i m p l e m e n t a c e vlastního úložiště Po dokončení návrhu celkové architektury můžete začít přemýšlet nad podkladovým datovým úložištěm. V této ukázce se bude datové úložiště skládat z nějakého souboru X L pro uživatele, a dalšího souboru XML, M který bude určen pro role. Pro maximální zjednodušení přístupu k těmto souborům budete jako primární mechanismus pro jejich čtení a zápis do nich používat serializaci XML. Budete k tomu potřebovat několik tříd, která budou data uložená v souborech X L uchovávat buďjako veřejná pole, nebo jako vlastnosti: M public class SimpleUser { public Guid UserKey = Guid.Empty; public string UserName = ""; public string Password = ""; public string Email = "": public DateTime CreattonDate = DateTime.Now;
- Pro možnost psaní komentářů se přihlašte nebo zaregistrujte.


































































