Вот статья из блога Скотта Гу, которая может помочь вам. В этой статье используется проверка подлинности Windows, но она также должна работать и для проверки подлинности форм.
http://weblogs.asp.net/scottgu/pages/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASP.NET-2.0-using-Windows-Authentication-and-SQL-Server.aspx
Если вы хотите реализовать различные названия для различных ролей, то вот пример того, как это может быть сделано. Все, что вам нужно сделать, это создать два узла, указывающих на один и тот же URL. Причины a = 1 и a = 2 в качестве querystring vars на URL-адресе - гарантировать, что URL-адрес уникален. Если URL-адрес не уникален, asp.net будет жаловаться, если вы не сможете переопределить эту функциональность ...
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="default.aspx" title="Home">
<siteMapNode url="page1.aspx?a=1" title="Client Title" roles="Client" />
<siteMapNode url="page1.aspx?a=2" title="Manager Title" roles="Manager" />
</siteMapNode>
</siteMap>