asp.net中的简单角色身份验证

时间:2008-11-28 18:10:40

标签: asp.net authentication

我想在.NET中进行简单的角色身份验证 - 但是在大量的apis中迷失了......

我希望每个目录都有一个web.config,其角色访问权限如下:

<authorization>
    <allow roles="admin"/>
    <deny users="*"/>
</authorization>

在我的登录页面中,我在哪里做FormsAuthentication.RedirectFromLoginPage我想指定登录用户的角色(管理员,用户等...) 我不需要RoleManagementProviders和RoleManagement的过度使用功能(在我的例子中)。

用户只需指定用户角色需要什么API?

由于

3 个答案:

答案 0 :(得分:7)

这是一个带有角色的非常简单的Forms身份验证实现的链接。我相信这是最基本的Forms身份验证实现: http://www.codeproject.com/KB/web-security/formsroleauth.aspx

以下是会员提供者的一个: http://www.asp.net/learn/moving-to-asp.net-2.0/module-08.aspx 您可能需要搜索其他教程,以便清楚了解如何自定义它。

我更喜欢成员资格提供程序,因为它允许您覆盖默认值并提供您自己的数据存储区和用于不同身份验证操作的方法。我发现它比使用基本实现更容易。

答案 1 :(得分:0)

请注意,要使用角色提供程序模型,您不必使用数据库和架构,可以使用更简单的选项。您可能有兴趣使用授权管理器(从Microsoft免费下载),它允许您将角色提供程序添加到ASP.NET应用程序,并使用其工具(通过管理工具访问的MMC管理单元)配置角色和权限。

How To: Use Authorization Manager with ASP.NET 2.0

该工具公开的配置存储在xml文件中,该文件在应用程序web.config中引用:

<connectionStrings>
  <add name="LocalPolicyStore" connectionString="msxml://C:/AzManStore.xml"/>
</connectionStrings>

当您将应用程序配置为使用授权管理器角色提供程序时,可以引用该文件:

<roleManager enabled="true" defaultProvider="RoleManagerAzManProvider">
  <providers>
    <add name="RoleManagerAzManProvider"
         type="System.Web.Security.AuthorizationStoreRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, publicKeyToken=b03f5f7f11d50a3a"
         applicationName="MyApp"
         connectionStringName="LocalPolicyStore"/>
  </providers>
</roleManager>

答案 2 :(得分:-1)

就个人而言,如果您打算使用角色管理,并且已经在ASP.NET中提供的用户功能,那么为什么要尝试破解一个解决方案,以便限制您扩展的能力。

使用角色分配的默认功能很简单,您不必担心为用户正确创建身份信息。