微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RoleProvider可以插入ASP.NET管道中的哪个位置?

如何解决RoleProvider可以插入ASP.NET管道中的哪个位置?

| 我唯一知道使用
RoleProvider
的地方是使用when1ѭ属性时。我还能在哪里使用
RoleProvider
并在我可能专门引用角色的地方以外的其他地方调用它(我在想类似于Login控件如何自动使用MembershipProvider的方式) 换句话说,如果我编写自己的角色管理层,但不实现实际的“ 0”合同,那么我将错过ASP.NET中的哪些内置功能?     

解决方法

        内置RoleProvider增加价值的几种方法: 1:“ 4”控件使用角色来允许您向不同的角色显示不同的内容。它将挂接到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-角色提供者的替代选择?     ,        对您问题的直截了当的答案将是“否”。 RoleProvider或任何其他提供程序都不参与ASP.Net的主流管道,并且ASP.Net请求不需要任何RoleProvider即可满足该请求。 除了回答技术性问题外,我还会回答一个更具哲学意义的回答,并尊重KP在回答中所做的努力。 RoleProvider本质上是ASP.Net的功能附加组件,它使您可以对角色系统进行处理,而不必在运行时知道任何功能细节。 ASP.Net 2.0引入了一种全新的与用户和角色打交道的方式。然后,他们决定提供集成的用户和角色管理,以使其可扩展且易于使用。他们创建了一个名为\“ Provider \”的新模式,并为每种功能(如用户,角色和会话)提供了默认提供程序。它们被称为MembershipProvider,RoleProvider和SessionProvider。但是,Microsoft并不限制您仅使用ASP.Net 2.0附带的提供程序。您可以定义自己的MembershipProvider,并在web.config中将它们声明为默认提供程序。 ProviderBase类将强制您实现每种方法,以使您的提供工作凝聚在一起,当您从web.config中将它们设为默认设置时,在运行时您无需知道系统中可能具有的任何目标提供程序的详细信息。客户端代码在任何特定提供者之间都是一致的。 希望这可以帮助。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。