Вы не можете расширить встроенную систему на основе ролей, как уже заметил другой автор.
Однако, что вы могли бы сделать для того, чтобы сохранить свои текущие поставщики членства и роли ASP.NET и продолжать пользоваться их услугами, просто создайте таблицу расширений для aspnet_Roles. Примерно так:
CREATE TABLE dbo.MyOwnRoleExtensions
(ExtensionID INT IDENTITY(1,1) PRIMARY KEY,
ApplicationId uniqueidentifier,
RoleId uniqueidentifier,
(whatever fields you need here......)
)
Затем можно установить отношение внешнего ключа к таблице aspnet_Roles в (ApplicationId, RoleId) и, таким образом, связать вашу таблицу «расширений ролей» с базовой таблицей aspnet_Roles.
Конечно, если вам нужно получить дополнительные поля в вашей таблице расширений, вы должны будете сделать это в своем собственном коде - но таким образом, вы все равно можете использовать и использовать все тонкости встроенного ASP Поставщики членства и роли .NET, и вам не нужны никакие грязные хаки или что-либо еще.
Марк