Каков наилучший способ создания собственной логики ролей с использованием идентификатора asp.net?
По сути, я хочу добавить boolean
(бит) столбец с именем Active
к AspNetUserRoles
таблицы и соответствуют только тем ролям, для которых в столбце Active
установлено значение true.
Что я пробовал до сих пор:
Создан мой собственный RoleProvider
:
public class MyCustomRoleProvier: System.Web.Security.SqlRoleProvider
{
public override string[] GetRolesForUser(string username)
{
return base.GetRolesForUser(username);
}
public override string[] GetUsersInRole(string roleName)
{
return base.GetUsersInRole(roleName);
}
}
И добавил его в web.config:
<system.web>
<roleManager enabled="true" defaultProvider="myRoleProvider">
<providers>
<clear/>
<add name="myRoleProvider" type="myNamespace.MyCustomRoleProvier" connectionStringName="myConnectionString"/>
</providers>
</roleManager>
</system.web>
Сейчас я не уверен, что этот подход сработает, поэтому я в основном вызываю базовые функции внутри моего собственного провайдера и return base.GetRolesForUser(username);
выдает следующую ошибку:
Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.
Я не хочу создавать совершенно новый RoleProvider, я думаю, единственное, что мне нужно изменить, это функции GetRolesForUser
и GetUsersInRole
.
Есть ли лучший способ добиться того, чего я хочу?