在Umbraco中,成员属性存储在哪里?

6

我正在尝试从数据库中导出会员属性,比如名字和姓氏,但是好像找不到。我看到有一个loginUser表格有正确的列,但它似乎只包含5个条目,而不是我在管理界面中看到的完整人员列表。

2个回答

13

Douglas是正确的,访问会员提供程序可能更容易。

但我最近参与的一个项目需要查询相当大的会员基础,而会员API速度太慢,所以我们使用了以下视图。希望这有所帮助:

SELECT        MEMBTYPEID.text AS MemberType, MEMBLST.nodeId, MEMBTYPES.Name AS MemberField, MEMBTYPES.Alias AS MemberFieldAlias, MEMB.LoginName, 
                         (CASE WHEN MEMBDATA.[dataInt] IS NOT NULL THEN CONVERT(NVARCHAR(500), MEMBDATA.[dataInt]) ELSE MEMBDATA.[dataNvarchar] END) 
                         AS MemberData
FROM            dbo.umbracoNode AS MEMBTYPEID INNER JOIN
                         dbo.cmsContent AS MEMBLST ON MEMBLST.contentType = MEMBTYPEID.id INNER JOIN
                         dbo.cmsPropertyType AS MEMBTYPES ON MEMBTYPES.contentTypeId = MEMBLST.contentType INNER JOIN
                         dbo.cmsPropertyData AS MEMBDATA ON MEMBDATA.contentNodeId = MEMBLST.nodeId AND MEMBDATA.propertytypeid = MEMBTYPES.id INNER JOIN
                         dbo.cmsMember AS MEMB ON MEMB.nodeId = MEMBLST.nodeId
WHERE        (MEMBTYPEID.nodeObjectType = '9b5416fb-e72f-45a9-a07b-5a9a2709ce43')

“where”子句只过滤节点类型为Member的节点(我不知道这个GUID在所有实现中是否都是常量,请先检查)


2
我没有时间使用API编写程序,这个脚本救了我的命。它会转储每个成员及其所有属性。非常感谢! - rob

9

会员属性存储在cmsPropertyData表中。 contentNodeId将对应于会员的ID。

使用API导出数据可能更容易。Umbraco使用标准ASP.NET Membership Provider模型。有关详细信息,请参见Membership providers


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接