Дайте мне знать, если вам нужны примеры из них, и я могу связать вас.

имаюсь разработкой веб-сайта ASP.NET MVC для интрасети, который должен иметь несколько разных пользовательских ролей (администратор, редактор, писатель и т. Д.), А серверная часть использует SQL Server. Я читаюэта почта Скотту о ролевой безопасности и использовал это в качестве отправной точки. Шаги, которые я следовал, были:

Настроил БД с помощью приложения asp_regsql.exe. Установите режим аутентификации для Windows.

<authentication mode = "Window" />

Добавлена запись строки подключения в Web.config,

<connectionStrings>
  <add name="SqlRoleManagerConnection" 
       connectionString="Data Source=localhost; Initial Catalog=aspservicedb; Integrated Security=SSPI;" />
</connectionStrings>

Добавлена запись roleManager в раздел Web.config,

<roleManager enabled="true" defaultProvider="sqlRoleManager">
  <providers>
    <clear />
    <add name="sqlRoleManager" type="System.Web.Security.SqlRoleProvider"
         connectionStringName="SqlRoleManagerConnection"
         applicationName="MyApplication" />
  </providers>
</roleManager>

Добавлен некоторый код роли в метод Application_Start () файла Global.asax.cs,

if (!Roles.RoleExists("Editor"))
{
   Roles.CreateRole("Editor");
}
if (!Roles.RoleExists("Writer"))
{
   Roles.CreateRole("Writer");
}
if (!Roles.RoleExists("SiteAdmin"))
{
   Roles.CreateRole("SiteAdmin");
   Roles.AddUserToRole("MYCOMPUTER\\Matt", "SiteAdmin");
}

Модифицированы мои контроллеры для использования ролей:

[Authorize(Roles = "SiteAdmin")]
public class SiteAdminController : Controller
{
    .
    .
    .
}

И на данный момент все это работает, но мне интересно, есть ли лучший подход к распределению ролей или есть проблемы с этим подходом. Легко убедить себя, что подход хороший, потому что он работал, но я бы хотел использовать другой подходв настоящее время а не позже, если это не лучший подход к решению проблемы. В другом месте я читал, что кто-то говорил, что это «взлом», но никогда не понимал, почему он не решил проблему таким способом. Твои мысли? У вас есть что лучше, чтобы решить эту проблему?

Ответы на вопрос(2)

Ваш ответ на вопрос