【问题标题】:ASP.NET MVC / AX - Custom Membership ProviderASP.NET MVC / AX - 自定义成员资格提供程序
【发布时间】:2012-02-09 08:46:19
【问题描述】:

我是 ASP.NET MVC 表单身份验证的新手,刚刚开始创建自己的自定义成员资格提供程序。我的 ValidateUser 和 ChangePassword 方法有效,但现在我想使用 GetUser 方法在整个站点中返回当前用户的数据。我的 AX 方法返回一个 AxaptaRecord,其中包含用户的详细信息,例如他们的电话号码、公司名称等。我如何将它与 GetUser 方法一起使用?

【问题讨论】:

    标签: asp.net-mvc-3 axapta


    【解决方案1】:

    您只需要创建MembershipUser 对象的新实例并从 AxaptaRecord 对象填充属性,这里是一些伪代码:

        MembershipUser user = new MembershipUser("AX",
        (string)axRecord.get_Field("name"),
        axRecord.get_Field("recid"),
        email, //get this from SysUserInfo table
        string.Empty,
        string.Empty,
        (bool)axRecord.get_Field("enable"),
        !(bool)axRecord.get_Field("enable"),
        (DateTime)Convert.ChangeType(axRecord.get_Field("createdDateTime"), typeof(DateTime)),
        DateTime.MinValue,
        DateTime.MinValue,
        DateTime.MinValue,
        DateTime.MinValue);
    

    然后你从你的 GetUser 方法返回用户。请参阅此处的 GetUser 方法说明:http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx

    【讨论】:

      【解决方案2】:

      控制器:

      var userDetails = System.Web.Security.Membership.GetUser(username);
      

      然后,您可以通过多种不同的方式将数据传递给 View。 每种方式都有其优点和缺点。 详情请点击here

      模型强类型视图可以让您轻松处理验证和生成数据,但如果您有多个表,则显示数据不是很好。

      【讨论】:

      • 但是在我的 Membership.GetUser() 方法中,我返回的是 AxaptaRecord 数据类型,而不是 MembershipUser 数据类型。
      • 我不确定使用我的自定义会员提供程序是否是最好的方法。我认为更好的方法可能是将返回的值存储在会话变量中
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多