基于ASP.NET Web应用程序角色的安全性

时间:2009-11-18 23:21:11

标签: asp.net web-applications security

我们正在编写一个要在我们的Intranet上部署的Web应用程序。我们希望实现基于角色的安全性,但不希望从头开始编写。

.NET中是否有内置功能可以执行此操作,或者任何人都可以推荐工具。

3 个答案:

答案 0 :(得分:2)

另外,如果您运行它,请考虑切换到针对您的中央目录进行身份验证,例如Active Directory,这样您就不必维护两个单独的用户帐户数据库和密码。使用this example中的成员资格模型可以轻松完成此操作。 AD中的小组将扮演角色,等等。

答案 1 :(得分:1)

是的,只需查看Membership API即可。

Scott Guthrie的这篇博文有几个资源的链接,可以帮助您入门。

http://weblogs.asp.net/scottgu/archive/2006/02/24/asp.net-2.0-membership_2c00_-roles_2c00_-forms-authentication_2c00_-and-security-resources-.aspx

答案 2 :(得分:1)

会员提供商运作良好。我从web.config中提供了一个示例:

<membership defaultProvider="CSLAMembershipProvider">
   <providers>
                <add name="CSLAMembershipProvider"
      type="..."
      functionalProvider="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
      enableSearchMethods="true"
      connectionProtection="None"
      attributeMapPasswordQuestion="..."
      attributeMapPasswordAnswer="..."
      attributeMapFailedPasswordAnswerCount="..."
      attributeMapFailedPasswordAnswerTime="..."
      attributeMapFailedPasswordAnswerLockoutTime="..."
      enablePasswordReset="true"
      requiresQuestionAndAnswer="true"
      minRequiredPasswordLength="1"
      minRequiredNonalphanumericCharacters="0"
      passwordStrengthRegularExpression="(?=.{8,})(?=(.*\d){1,})(?=(.*\W){1,})(?=(.*[a-z)){1,})(?=(.*^[a-z]){1,})"
      connectionStringName="..."
      />
   </providers>
</membership>