MySQLRoleProvider - PullRequest
       18

MySQLRoleProvider

0 голосов
/ 11 марта 2012

Я использую MySQL Connector / .NET и пользовательский поставщик членства MySQL.

Вот часть web.config:

<roleManager enabled="true" defaultProvider="MySQLRoleProvider">
  <providers>
    <clear />
    <add applicationName="name" description=""
      connectionStringName="MySQLMP" writeExceptionsToEventLog="False"
      autogenerateschema="True" name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  </providers>
</roleManager>
<membership defaultProvider="MySQLMembershipProvider">
  <providers>
    <clear />
    <remove name="MySQLMembershipProvider" />
    <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" applicationName="name" description="MySQL default application" connectionStringName="MySQLMP" writeExceptionsToEventLog="False" autogenerateschema="True" enablePasswordRetrieval="False" enablePasswordReset="True" requiresQuestionAndAnswer="True" requiresUniqueEmail="True" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
  </providers>
</membership>
<profile defaultProvider="MySQLProfileProvider">
  <properties>
    <add name="AccountNumber" type="string" provider="" />
    <remove name="MySQLProfileProvider" />
    <add name="MySQLProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
  </properties>
  <providers>
    <clear />
    <add name="MySQLProfileProvider" connectionStringName="MySQLMP" applicationName="name" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.4.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />
  </providers>
</profile>

В дополнение к этому я используюASP.NET форма авторизации.Я пытаюсь сделать следующее: после входа пользователя в систему я хочу проверить, является ли он / она администратором, и перенаправить на определенную страницу.Легко, правда?

Полагаю, я должен использовать следующее:

if(Role.IsUserInRole(lgnCustomer.UserName, "Administrator"))
        lgnCustomer.DestinationPageUrl = "~/admin";

Однако по какой-то причине я не могу использовать "Роль".Кажется, что его недостающая ссылка на MySQLRoleProvider.

Все остальное (регистрация пользователей, вход в систему, разграничение ролей) работает ...

Заранее спасибо!

1 Ответ

0 голосов
/ 16 марта 2012

Ответ не так сложен, как я думал.По-видимому, не имеет значения, что поставщик членства является чем-то отличным от поставщика SQL по умолчанию.Я должен был использовать using System.Web.Security; в начале, а не using MySQL.Web.Security;

...