Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Alex Perotti 53 posts 94 karma points
    Jul 02, 2013 @ 01:35
    Alex Perotti
    0

    Still the Member integration


    Ok, I'm still working on my member integration.

    I think I'm missing somethig.

    I have a profile with several custom fields, I've configure it but I can't retrieve it

    Here's the web.config

     <membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
          <providers>
            <clear/>
    
            <add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Hashed"/>
            <add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false"
                 enablePasswordReset="true" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Default" umbracoApprovePropertyTypeAlias="isApproved" 
                 umbracoLockPropertyTypeAlias="isLocked" passwordFormat="Hashed" requiresUniqueEmail="true"
                 umbracoCommentPropertyTypeAlias="comments" umbracoLastLoginPropertyTypeAlias="last_login"/>
    
          </providers>
    
    
        </membership>
        <profile defaultProvider="UmbracoMemberProfileProvider" enabled="true">
            <providers>
                <clear />
                <add name="UmbracoMemberProfileProvider" type="umbraco.providers.members.UmbracoProfileProvider, umbraco.providers" />
            </providers>
            <properties>
                <clear />
                <add name="Name" allowAnonymous ="false" provider="UmbracoMemberProfileProvider" type="System.String" />
                <add name="Surname" allowAnonymous ="false" provider="UmbracoMemberProfileProvider" type="System.String" />
                <add name="LockedUntil" allowAnonymous ="false" provider="UmbracoMemberProfileProvider" type="System.DateTime" />
                <add name="Role" allowAnonymous ="false" provider="UmbracoMemberProfileProvider" type="System.String" />
    
            </properties>
        </profile>

    Default properties are working fine (such isApproved).

    But when I try to create a profile I get always null

        public class MemberProfile : ProfileBase
        {
    
            public static MemberProfile GetUserProfile(string username)
            {
                var z = Create(username);  // <------ PROFILE COMMON is Correct
                return Create(username) as MemberProfile; // Always returns null
            }
    
            public static MemberProfile GetUserProfile()
            {
                return Create(Membership.GetUser().UserName) as MemberProfile;
            }
    
            [SettingsAllowAnonymous(false)]
            public string AuthGuid
            {
                get
                {
                    var o = base.GetPropertyValue("auth_guid");
                    if (o == DBNull.Value)
                    {
                        return string.Empty;
                    }
                    return (string)o;
                }
                set
                {
                    base.SetPropertyValue("auth_guid", value);
                }
            }
    
    
            [SettingsAllowAnonymous(false)]
            public string Name
            {
                get
                {
                    var o = base.GetPropertyValue("name");
                    if (o == DBNull.Value)
                    {
                        return string.Empty;
                    }
                    return (string)o;
                }
                set
                {
                    base.SetPropertyValue("name", value);
                }
            }
    
    
            [SettingsAllowAnonymous(false)]
            public string Surname
            {
                get
                {
                    var o = base.GetPropertyValue("surname");
                    if (o == DBNull.Value)
                    {
                        return string.Empty;
                    }
                    return (string)o;
                }
                set
                {
                    base.SetPropertyValue("surname", value);
                }
            }
    
    
            [SettingsAllowAnonymous(false)]
            public string Role
            {
                get
                {
                    var o = base.GetPropertyValue("role");
                    if (o == DBNull.Value)
                    {
                        return string.Empty;
                    }
                    return (string)o;
                }
                set
                {
                    base.SetPropertyValue("role", value);
                }
            }
    
    
            [SettingsAllowAnonymous(false)]
            public DateTime? LastLogin
            {
                get
                {
                    var o = base.GetPropertyValue("last_login");
                    if (o == DBNull.Value)
                    {
                        return null;
                    }
                    return (DateTime)o;
                }
                set
                {
                    base.SetPropertyValue("last_login", value);
                }
            }
    
    
            [SettingsAllowAnonymous(false)]
            public string Comments
            {
                get
                {
                    var o = base.GetPropertyValue("comments");
                    if (o == DBNull.Value)
                    {
                        return string.Empty;
                    }
                    return (string)o;
                }
                set
                {
                    base.SetPropertyValue("comments", value);
                }
            }
    
            /*lockedUntil*/
    
    
            [SettingsAllowAnonymous(false)]
            public DateTime LockedUntil
            {
                get
                {
                    var o = base.GetPropertyValue("lockedUntil");
                    if (o == DBNull.Value)
                    {
                        return new DateTime();
                    }
                    return (DateTime)o;
                }
                set
                {
                    base.SetPropertyValue("lockedUntil", value);
                }
            }
    
    
    
        }

    Also, AuthGuid property is not set when ceating the user (with the provider key I suppose).

    I don't have a deep understaning of the whole process, so I'm probably missing something...

    thank you

  • Alex Perotti 53 posts 94 karma points
    Jul 02, 2013 @ 19:25
    Alex Perotti
    0

    Update: I was missing in the web.config  to set

    inherits="myclass, myAssembly"

     

    But now I ran into another problem: 

    I'm getting this error at runtime: "this profile property has already been defined"

    It seems to be an issue with webapps (I'm using a web application project) which doesn't need the properties to be defined in web.config, but only in the class.

    But if I remove the properties from web.config I don't get the error anymore but I don't retrieve the values to (they are always blank)

    Any idea? 

Please Sign in or register to post replies

Write your reply to:

Draft