Je Roles.AddUserToRole skutečně to, co hledám, abych uspokojil své potřeby. Myslím, že musím uložit uživatelské role v relaci, ne?
NE! Přidání uživatele do rolí znamená, že poskytovatel propojí uživatele s rolí. Protože již máte uživatele propojeného, je to bezcenný směr.
tyto role nějak uložit, abych mohl zobrazit ovládací prvky a odkazy na základě jejich členství v roli
Proč to musíte udělat? Na úrovni stránky můžete nastavit zabezpečení ASP.NET s ořezy, takže můžete automaticky vyloučit stránky ze zobrazení uživatele, pokud nemají správnou roli (role). Pokud jde o sekce/ovládací prvky/atd., můžete zkontrolovat, zda je uživatel v roli, a poté určit, zda ji chcete zobrazit či nikoli. Pokud používáte sekce, mnohé z toho lze provést spíše deklarativně než programově.
Jedinou výhradou je to, co váš poskytovatel členství podporuje. Poskytovatelé „out of the box“ (Access a SQL Server) podporují bezpečnostní ořezy a deklarativní syntaxi pro vyloučení částí stránky atd. Pokud poskytovatel MySQL plně implementuje všechny metody, měli byste je také používat . Pokud vytvoříte vlastního poskytovatele, existují určité části, které musíte implementovat, aby věci fungovaly.
Krátká povídka je, že jakmile získáte členstvíUser (ověříte osobu), budete mít přístup k tomu, zda je osoba v roli nebo ne. To vše je součástí standardní implementace poskytovatele členství v .NET. Pokud poskytovatel, kterého používáte pro MySQL, pokrývá všechny stejné metody, můžete rychle vyhledávat na Googlu a najít spoustu stránek, které ukazují, jak zobrazit/skrýt bity na základě rolí.