【问题标题】:MembershipProvider, IPrincipal, IIdentity?MembershipProvider、IPrincipal、IIdentity?
【发布时间】:2011-01-31 10:42:34
【问题描述】:

我有一个概念问题...我正在为一家公司制作 Intranet 应用程序(Web 平台)。我有一个带有这些表的 SQL Server 数据库:

Users (userID, userName, userPass, roleID)
Roles (roleID, roleName)
Pages (pageID, pageURL)
RolesXPages(pageID, roleID)

当用户浏览网站时,如何创建一个存储所有这些信息的结构的最佳方式是,我的意思是,在线程上我应该能够检查他的角色,他的页面(他可以访问的页面)我有一直在阅读,其中有很多东西让我感到困惑,我看到了 MembershipProvider、IPrincipal、IIdentity 等类,但我不确定什么对我来说应该是最好的。

任何想法...

提前致谢!

编辑: 每次都变得更加混乱......我只想在运行时处理这些结构,并能够在页面回调或更改页面期间保持状态......

【问题讨论】:

  • 这些表是你设计的还是继承的?

标签: c# asp.net security asp.net-membership roles


【解决方案1】:

我一般使用 MembershipProvider、RoleProvider 和 ProfileProvider。听起来它会解决你所有的问题。

http://www.4guysfromrolla.com/articles/120705-1.aspx

MembershipProvider 允许您使用许多内置的 asp.net 控件,例如登录、登录状态、用户向导。

RoleProvider 允许您创建和管理哪些成员用户属于哪些角色,并且您可以使用 web.config 管理对应用程序不同区域的访问

ProfileProvider 允许您基本上扩展 Membership 用户帐户,以向他们的帐户添加您希望的任何属性。

【讨论】:

    【解决方案2】:

    如果您正在构建全新的东西,我认为您应该查看 asp.net 中的内置 membership and role system,尤其是 Sql Server Role Provider。

    【讨论】:

      【解决方案3】:

      使用 ASP.NET 成员资格,您将需要针对 asp.net MembershipProvider 模型进行编码。 如果可以的话,我会放弃使用任何自定义代码进行身份验证和角色,并使用现有的提供者模型。然后编写一些自定义代码来处理页面级别的访问。

      IPrincipal 非常简单,如果您必须使用您列出的自定义表,它可能会更快。 希望有帮助

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 2017-09-06
        • 2015-10-07
        • 2012-01-05
        • 2010-11-07
        • 2011-11-03
        • 2012-05-31
        • 2015-10-22
        相关资源
        最近更新 更多