Пользовательская ролевая логика с использованием asp.net Identity - PullRequest
0 голосов
/ 17 декабря 2018

Каков наилучший способ создания собственной логики ролей с использованием идентификатора 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.

Есть ли лучший способ добиться того, чего я хочу?

...