Вот несколько способов, которыми встроенный RoleProvider добавляет ценность:
1: Элемент управления LoginView
использует роли, чтобы вы могли показывать разный контент разным ролям. Для этого он подключится к RoleProvider.
Пример использования ролей с элементом управления LoginView:
<asp:LoginView id="LoginView1" runat="server">
<RoleGroups>
<asp:RoleGroup Roles="author">
<ContentTemplate>
some content here based on if user is in 'author' role....
</ContentTemplate>
</asp:RoleGroup>
<asp:RoleGroup Roles="editor">
<ContentTemplate>
some content here based on if user is in 'editor' role....
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
2. Вы можете предоставить доступ к физическим путям на сервере (т. е. к подпапкам и т. д.) с помощью настроек web.config, например:
<configuration>
<location path="MemberPages">
<system.web>
<authorization>
<allow roles="members, administrators" />
<deny users="*" />
</authorization>
</system.web>
</location>
<!-- other configuration settings here -->
<configuration>
3. Вы можете легко определять роли пользователей и выполнять действия в коде, например:
if (User.IsInRole("members"))
{
//do something
}
else
{
//do something else
}
У этого списка нет конца. Честно говоря, это обсуждение обсуждалось много раз — не изобретайте велосипед, создавая свою собственную ролевую систему. Просто реализуйте поставщика абстрактных ролей и покончите с этим. Вот хорошая статья, посвященная управлению ролями в ASP.NET.
РЕДАКТИРОВАТЬ: После того, как вы уточнили, что на самом деле хотите знать, какие преимущества дает вам RoleProvider в рамках MVC, вот что вам нужно:
ASP.NET MVC — альтернатива поставщику ролей?
person
KP.
schedule
27.05.2011