asp.net – 如何使用Membership API与自己的应用程序相关数据相结合?
|
在asp.net 4中设计一个新的应用程序我必须决定如何在MS SQL数据库中使用MS SQL Membership API和我自己的数据.首先,我需要以更灵活的方式存储和访问用户配置文件数据,然后配置文件提供程序支持.其次,我想链接其他用户相关信息(例如订单). 无论您在何处存储aspnetdb表(在单独的数据库中或与数据存储在同一数据库中),问题仍然存在于如何保持数据同步. 经过研究,我看到以下相关选项: 一方面,我喜欢第一个解决方案,因为它非常简单,并在官方的asp.net教程中提出. 另一方面,反对者非常合理地指出,使用外键打破了提供者的一般想法,这些提供者应该帮助分离关注点并且可以互换.但不幸的是,他们并没有深入了解实施细节,因此从相关性和易于实施的角度来估计这些建议并不容易. 那么解决这个问题的最佳选择是什么?此外,实现将如何?仅仅使用额外的ADO.NET或LINQ等代码是否足够,还是值得实现自定义成员资格和/或配置文件提供程序? 先感谢您. 解决方法第一种是最简单的方法.在相关表中添加用户的GUID作为外键(f.e.Ordered_by).我没有看到它打破分离问题的地方.如果您想将订单记录保存在数据库中,您还必须保留已订购的用户,这非常有意义.我在当前的应用程序中成功使用了选项4.我创建了一个表aspnet_UserID,其中idUser int作为主键,fiUser(aspnet_Users的GUID)作为外键.这是模型: (注意:User是通过aspnet_regsql.exe创建的标准aspnet_Users表,aspnet_UserId是我的自定义表,它将每个Guid映射到我的int-ID) 现在我只在所有相关表中存储我的idUser作为FK(如在Order-Table中).这样做的好处是存储空间更小,UserID更易读(我永远不会记住GUID).也许它与这个“包装表”有点分离,但这不是我的主要意图. 如果要控制行为,可以更改外键上的delete-rule.如果你是f.e.将它设置为Cascade.想删除您要删除的用户订购的所有订单,或者如果要保留此订单,则将其设置为无操作. 我不能为配置文件问题提出任何替代方案,因为您没有提到“您需要以更灵活的方式存储和访问用户配置文件数据,而不是配置文件提供程序支持”. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在表单提交时传递整个模型
- asp.net – 从多个Web.config文件访问appSettings
- asp.net – 控制器SessionStateBehavior是ReadOnly,我可以更
- 使用ActiveDirectory授权与ASP.NET身份
- asp.net – 是否允许使用manifest.json的相对路径并将其放在
- asp.net – 什么内容类型强制下载文本响应?
- asp.net – 检查该电子邮件地址是否适用于System.Net.Mail.
- asp.net-mvc – ASP.NET MVC将属性“data-message”添加到H
- 将变量从ASP.net传递给JavaScript
- 企业ASP.NET MVC 3架构大纲
- asp.net-mvc – 如何在使用RedirectToAction时设
- asp.net-core – 从ActionFilterAttribute设置Vi
- asp.net-mvc-4 – 调用客户端时应该发出服务器端
- asp.net – 获取数据绑定到ListView上DataBound事
- asp.net-mvc-3 – WSFederationAuthenticationMo
- asp.net-mvc-3 – ASP.net MVC路由与可选的第一个
- asp.net – 允许文本框中的HTML
- asp.net – 它是否有助于使用NGEN?
- asp.net – 如何从水晶报表中的组字段中删除组名
- asp.net – 停止在每次构建时创建和删除app_offl
