Är Roles.AddUserToRole verkligen vad jag letar efter för att tillfredsställa mina behov. Jag tror att jag måste lagra användarrollerna i sessionen, eller hur?
NEJ! Att lägga till användare till roller innebär att leverantören länkar användaren till rollen. Eftersom du redan har användaren länkad är detta en värdelös riktning.
lagra dessa roller på något sätt så att jag kan visa kontroller och länkar baserat på deras rollmedlemskap
Varför behöver du göra detta? På sidnivå kan du ställa in ASP.NET-säkerhet med beskärningar så att du automatiskt kan utesluta sidor från användarens vy om de inte har rätt roll(er). När det gäller avsnitt/kontroller/etc, kan du kontrollera om en användare ÄR i en roll och sedan bestämma om den ska visas eller inte. Om du använder sektioner kan mycket av detta göras deklarativt snarare än programmatiskt.
Den enda varningen är vad din medlemsleverantör stöder. "Out-of-box"-leverantörerna (Access och SQL Server) stöder säkerhetstrimningar och deklarativ syntax för uteslutningar av avsnitt av en sida, etc. Om MySQL-leverantören fullt ut implementerar alla metoder, bör du också klara dig med att använda den. . Om du skapar en anpassad leverantör finns det vissa delar du måste implementera för att få saker att fungera.
Novellen är när du tar tag i en medlemskapAnvändare (autenticera personen), kommer du att ha tillgång till om personen är i rollen eller inte. Allt detta är en del av standardimplementeringen av en medlemsleverantör i .NET. Så länge leverantören du använder för MySQL täcker alla samma metoder, kan du göra en snabb google-sökning och hitta massor av webbplatser som visar hur man visar/döljer bitar baserat på roller.