【问题标题】:create member profiles programatically in umbraco在 umbraco 中以编程方式创建成员资料
【发布时间】:2013-05-30 08:26:04
【问题描述】:

我正在尝试以编程方式创建新成员。 事实上,我需要构建一个函数来从电子表格中导入成员。

我构建了一个继承 ProfileBase 的成员类,并且可以在他注册时以编程方式创建一个成员,但这需要他登录以更新完整的个人资料。 因此,一个会员注册,他的会员资格被创建,我登录他,创建他的个人资料并注销他。这对用户不可见,但在后台运行良好。

现在我需要通过 umbraco 后台的功能导入成员。 我可以创建成员,但我无法更新他们的配置文件,这些配置文件使用 web.config、umbraco 和我的成员类中设置的自定义属性。我只是在我的数据库中得到空的个人资料。

知道在这种情况下我能做什么吗?如何在不登录会员的情况下更新会员资料? 谢谢

【问题讨论】:

  • 只是一个简短的评论,因此您无需重新发明轮子,CMSImport 可以从 Excel 导入成员,免费版可以免费导入多达 500 个:soetemansoftware.nl/cmsimport/features
  • 感谢@miracledev,但我有 500 多名成员,我的公司不会为一次性操作支付软件费用。无论如何,我已经构建了所有 API,如果有意义的话,我只是无法更新配置文件
  • 你能发布你已经拥有的代码吗?

标签: umbraco profile membership


【解决方案1】:

我最近自己做了一些非常相似的事情,假设你的 Member 类看起来像下面这样(或者至少做同样的事情)。

public class MemberProfile : ProfileBase
{
    #region Firstname
    private const string FIRSTNAME = "_firstname";
    [SettingsAllowAnonymous(false)]
    public string FirstName
    {
        get
        {
            return GetCustomProperty(FIRSTNAME);
        }
        set
        {
            SetCustomProperty(FIRSTNAME, value);
        }
    } 
    #endregion

    #region Get and Set base properties

    private string GetCustomProperty(string propertyName)
    {
        var retVal = "";
        var prop = base.GetPropertyValue(propertyName);
        if (prop != null)
        {
            retVal = prop.ToString();
        }
        return retVal;
    }
    private void SetCustomProperty(string propertyName, object value)
    {
        var prop = base[propertyName];
        if (prop != null)
        {
            base.SetPropertyValue(propertyName, value);
        }
    }

    #endregion
}

然后使用以下方法应该允许您检索成员,更新属性并保存它们:

var existingMember = MemberProfile.Create(username) as MemberProfile;
existingMember.FirstName = firstName;

existingMember.Save();

令人困惑的是 Create() 方法实际上返回现有用户,他们只是出于某种原因将其称为 create...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多