ASPNET 成员资格提供程序表和自定义成员资格表之间的关系

2024-01-30

我不久前经历了一个自定义配置文件提供程序示例,我是 现在重新审视它。

我的数据库包含运行 aspnet 注册时创建的所有 dbo.aspnet_* 表 向导。在这些表中,我有 aspnet_Profile,它有一个指向 aspnet_Users 的 FK 约束。

我在 MyDB 中还有两个表:第一个表 dbo.ProfileData 有外键约束 指向 dbo.Profile。

我想了解的是 MyDB 中的表如何关联 dbo.aspnet_* 中的那些。不应该有外键约束(或某种 MyDB 中的配置文件表和 aspnet 表之间的关系)?一些讨论 我的自定义表格与 aspnet 提供的表格之间的关系将是非常棒的。

提前致谢。


我可以看到两个选项,这两个选项都会产生基本相同的结果:

  • FK from dbo.aspnet_User.UserID to dbo.Profile.UserID,然后定义一个唯一的键dbo.Profile.UserID(除非你用它作为 PK 列dbo.Profile)

  • FK from dbo.aspnet_Profile.ProfileID to dbo.Profile.ProfileID

dbo.aspnet_User逻辑上是 1 - 1dbo.aspnet_Profile,因此使用哪种方法并不重要,因为您仍然可以获得相同的关系完整性。

如果您要使用自己的实现替换标准配置文件数据表,则使用第一个建议更有意义,否则,如果您要扩展配置文件架构,则使用第二个建议。

EDIT

aspnet_Profile是标准表-标准SqlProfileProvider将用户的个人资料数据存储为序列化的属性包aspnet_Profile,因此为什么没有单独的aspnet_ProfileData表也​​是如此。

这种方法允许轻松地为不同的应用程序定制配置文件模式,而不需要对底层数据库进行任何更改,并且是 .NET 等框架的最佳解决方案。缺点是 SQL Server 根本无法轻松访问这些数据,因此使用 T-SQL 和基于集合的逻辑索引、更新和查询用户的个人资料数据要困难得多。

我见过的消除此限制的最常见方法是扩展标准SqlProfileProvider写入自定义配置文件数据表,该表具有用于特定于应用程序的配置文件属性的特定列。该表自然与 aspnet_Profile 表具有 1-1 关系,因此它具有如上所示的外键。

扩展提供程序的作用是在配置文件写入期间将特定配置文件属性提升到列,并在检索配置文件时在列中读取。

这允许您根据需要混合搭配存储解决方案,只要您的扩展提供程序知道如何回退到它不“了解”给定属性的标准实现。

我始终认为最好按原样保留标准成员资格表,并在必要时使用具有适当外键的新表进行扩展,然后对适当的提供程序进行子类化并使用您自己的实现覆盖提供程序方法(尽可能调用基本实现) )。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASPNET 成员资格提供程序表和自定义成员资格表之间的关系 的相关文章

  • 收到“路径‘OPTIONS’被禁止”。 ASP.NET网站异常

    我收到错误System Web HttpException Path OPTIONS is forbidden 自从我们将网站转移到新的服务器设置以来 我无法重新创建该错误 但我每天至少会收到几次有关此异常的电子邮件 有什么想法可能导致此问
  • ASP.NET 更新面板停止 jquery 工作

    我已经为 mouseenter mouseleave 以及 jquery Draggable 绑定了 jquery 事件集 div 被放置在更新面板中 当单击按钮时 信息将发送到数据库并更新更新面板 但是 当面板更新时 jquery 事件不
  • 从 javascript 调用 HttpHandler

    我有一个简单的页面 带有通过 JavaScript 调用 HttpHandler 的按钮 HttpHandler 获取大量文件并将它们添加到 zip 文件中 完成工作后 zip 文件将添加到 Response 中 此操作可能需要几分钟时间
  • 使用包含和不包含的 Linq 查询

    我正在尝试从数据库中获取记录 它应该 getrecords 其中名称包含 searchKey 并且名称不在 exceptTerms 数组中 并以逗号分隔 我怎样才能在 Linq 中做到这一点 Rows from u in DB Client
  • 如何从 ASP.net 网站写入 OutputDebugString?

    我需要从网站上的代码输出一些调试信息 我怎样才能打电话OutputDebugString来自 ASP net 网站 并将其显示给运行 DbgView 的用户 Note 网站不支持System Diagnostics Trace TraceW
  • 是否可以在 ASP.NET Web API 和 SPA 中使用基于 cookie 的身份验证?

    我想创建基于 angularjs 前端和 ASP NET Web API 的 Web 应用程序 我需要创建安全 api 但我无法在将实施此 Web 应用程序的公司服务器上使用基于令牌的身份验证 是否可以对 SPA 和 ASP NET Web
  • 什么可能会在一台服务器上导致此错误,而在另一台服务器上则不会?

    我们有一个连接到外部 Web 服务的 ASP Net 网站 几天前它突然停止工作 基本代码是这样的 Try request New ExternalWebService ProcessRequestService Error occurs
  • W3WP.EXE 使用 100% CPU - 从哪里开始?

    在 IIS6 上运行的 ASP NET Web 应用程序会定期使 CPU 达到 100 在这些事件中 几乎所有的 CPU 使用情况都是由 W3WP 负责的 CPU 在几分钟到一个多小时的任何时间都保持在 100 这是在临时服务器上 此时该站
  • ASP.NET MVC 多线程

    我想在我的 asp net mvc 应用程序中实现这样的逻辑 user clicks a button gt server executes some time consuming logic in 15 threads i get dat
  • 使用 jQuery 获取 ASP.Net Gridview 的 rowIndex

    您好 是否可以使用 jQuery 获取 gridview 的当前行索引 一点背景 我使用模板字段中的服务器端链接按钮从 gridview 中删除行 如下所示
  • 即使通过 ssl,在 ViewState 中存储信用卡和定价信息是否安全?

    我有一个带有私有属性的页面 该页面在视图状态中存储信用卡对象和购物车对象 以便我可以在回发期间维护对它们的引用 顺便说一句 涉及的页面将使用 SSL 这安全吗 我不会在视图状态中存储敏感信息 ever 通过这样做 您将安全性委托给浏览器的实
  • 我的机器密钥是自动生成的还是隔离的?

    我正在尝试分享 ASPXAUTHASP NET MVC 4 应用程序 在 IIS 7 5 中 和使用的服务之间的 cookieHttpListener在同一主机上 浏览器正确地向两者呈现 cookie 但我的服务收到System Web H
  • 导出到 CSV 时 Gridview 出现空行

    这个问题是由进一步讨论引发的这个问题 https stackoverflow com questions 6674555 export gridview data into csv file 6674589 noredirect 1 com
  • 从呈现的控件 ID 中删除 ctl00$ContentBody$

    我对现有的应用程序进行了一些更改 该应用程序以前只是简单的 HTML 和 Javascript 为了添加服务器端功能 我选择了 ASP NET 并利用了母版页概念 不幸的是 在一个巨大的 Web 表单上 控件 ID 全部被 ctl00 Co
  • 如何在aspx页面中的repeater ItemDataBound函数中传递Control.ClientID?

    我想调用 JavaScript 函数来折叠 展开 我在 asp repeater 中使用此代码ItemTemplate在跨度上 onclick javascript funCollExp this 我该如何通过Control ClientI
  • 设置asp.net验证器的顺序

    我使用 3 个验证器来验证文本框 但当在文本框中输入无效值时 所有验证器都会被触发 但我希望这些验证器按照特定的顺序工作 以便用户可以一一解决这些错误
  • 如何在ASP.NET服务器的web.config文件中使用Azure Pipeline中设置的环境变量?

    我打算在 ASP NET 中使用 Azure Pipeline 中的以下环境变量web config file
  • 基于网络的应用程序中的图表

    可使用 ASP NET 在网页上显示图表的各种图表工具有哪些 我了解 Dundas 和 Infragistics 等商业工具 我可以用谷歌搜索这个 但我想知道参与者使用过的各种工具 任何可用的免费图表工具也欢迎提及 如果您不介意使用 Fla
  • 同时从2个表中删除?

    我正在使用 asp net 和 sql 服务器 我有 2 个表 类别和产品 在产品表中 我的categoryId 为FK 我想要做的是 当我从类别表中删除类别时 我希望该类别中的所有产品都将在产品表中删除 如何才能做到这一点 我更喜欢使用存
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默

随机推荐