Gostaria de uma dica de material para simple membership usando Roles para criar perfis de usuário.
Gostaria de uma dica de material para simple membership usando Roles para criar perfis de usuário.
Oi Fagner, tudo bom?
Pra lidar com Roles você pode dar uma olhada no Roles API. No proprio link da documentação você encontra alguns exemplos de uso =)
Qualquer problema é só falar!
Abraço e bons estudos.
Estou enfrentando problema na criação das Roles. Quando tento verificar a existência de uma Role o Visual Studio me retorna um erro sem tratamento.
if (!Roles.RoleExists("admin"))
MySql.Data.MySqlclient.MySqlException... ...is not allowed to connect to this MariaDB server'
Web.config
<membership defaultProvider="MySQLMembershipProvider">
<providers>
<remove name="MySQLMembershipProvider" />
<add name="MySQLMembershipProvider"
type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
autogenerateschema="true"
connectionStringName="Contexto"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Clear"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
</providers>
</membership>
As tabelas no Banco de Dados estão sendo criadas corretamente.
Eu sei que o Roles é do "System.Web.Security;" Googlei muita coisa até chegar aqui e pedir uma ajuda e não achei nada que pudesse me ajudar.
To buscando usar eles assim.
[Authorize(Roles ="admin")]
public ActionResult Index()
Oi Fagner, tudo bom? =)
O erro aponta um problema de acesso, se sua aplicação se conecta normalmente para gerar o schema, significa que possivelmentes temos configurações diferentes para conectar com o banco a partir da aplicação e a partir das Roles.
Dei uma pesquisada aqui e, realmente, precisamos configurar o SqlRoleProvider no arquivo web.config. Algo como:
<roleManager enabled="true" defaultProvider="SqlRoleManager">
<providers>
<add name="SqlRoleManager"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SqlRoleManagerConnection"
applicationName="MyApplication" />
</providers>
</roleManager>
No link acima, você encontra um passo-a-passo sobre essa configuração.
Qualquer problema é só falar =)
Abraço!
High 5 amigão, agora foi que foi uma beleza.
<roleManager defaultProvider="MySQLRoleProvider">
<providers>
<add name="MySQLRoleProvider"
type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
connectionStringName="Contexto"
applicationName="/" />
</providers>
</roleManager>