c# - ASP.NET Custom membership issue with get custom membership user -No parameterless constructor defined for this object -


error throws when custom membership user object create. details error message below.

error:

system.configuration.configurationerrorsexception caught   message=no parameterless constructor defined object. (d:\projects\sample\samplemembership\web.config line 23)   source=system.web   baremessage=no parameterless constructor defined object.   filename=d:\projects\sample\samplemembership\web.config   line=23   stacktrace:        @ system.web.configuration.providershelper.instantiateprovider(providersettings providersettings, type providertype)        @ system.web.configuration.providershelper.instantiateproviders(providersettingscollection configproviders, providercollection providers, type providertype)        @ system.web.security.membership.initializesettings(boolean initializegeneralsettings, runtimeconfig appconfig, membershipsection settings)        @ system.web.security.membership.initialize()        @ system.web.security.membershipadapter.get_providers()        @ system.web.security.membershipuser..ctor(string providername, string name, object provideruserkey, string email, string passwordquestion, string comment, boolean isapproved, boolean islockedout, datetime creationdate, datetime lastlogindate, datetime lastactivitydate, datetime lastpasswordchangeddate, datetime lastlockoutdate)        @ asys.catalogueviewer.membership.custommembershipuser..ctor(string providername, string username, object provideruserkey, string email, string passwordquestion, string comment, boolean isapproved, boolean  

my custom membershipuser class code below.

using system; using system.collections.generic; using system.linq; using system.text; using  system.web.security; public class custommembershipuser : membershipuser {         private string _website;     public string website     {         { return _website; }         set { _website = value; }     }        public custommembershipuser()            {            }     public custommembershipuser(string providername,                               string username,                               object provideruserkey,                               string email,                               string passwordquestion,                               string comment,                               bool isapproved,                               bool islockedout,                               datetime creationdate,                               datetime lastlogindate,                               datetime lastactivitydate,                               datetime lastpasswordchangeddate,                               datetime lastlockedoutdate,                               string website) :         base(providername,                                    username,                                    provideruserkey,                                    email,                                    passwordquestion,                                    comment,                                    isapproved,                                    islockedout,                                    creationdate,                                    lastlogindate,                                    lastactivitydate,                                    lastpasswordchangeddate,                                    lastlockedoutdate)     {         this.website =website;     } } 

error throws when try create object using above custom user class(object creation code below)

custommembershipuser membershipuser = new custommembershipuser(this.name,               username,              guid.parse(userid.tostring()),               email,               passwordquestion,               comment,               isapproved,               islockedout,               creationdate,               lastlogindate,               lastactivitydate,               lastpasswordchangeddate,               lastlockedoutdate, "ss"); 

web config configuration below.

<configuration>   <connectionstrings>     <add name="modelcontainer" connectionstring="metadata=res://*/data.model.csdl|res://*/data.model.ssdl|res://*/data.model.msl;provider=system.data.sqlclient;provider connection string=&quot;data source=get2code\get2code;initial catalog=catalogueviewer;user id=sa;password=hammer;multipleactiveresultsets=true&quot;" providername="system.data.entityclient" />   </connectionstrings>     <system.web>         <machinekey validationkey= "23729ffe7e16b1dd03d3bc8b45280254da09ce2abf5c1ac2ffd5da04ab2521dbd7e6a8efbe49c63da2da55708545a4562c75e8495415cb7b0456720652a9f160" decryptionkey= "d643c94989e6d3a76e265aa4a565108fa727dbc7ab87ede85f578dc78a8e407c" validation="sha1" decryption="aes"/>          <compilation debug="true" targetframework="4.0">             <assemblies>                 <add assembly="system.design, version=4.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a"/></assemblies></compilation>         <authentication mode="forms" >             <forms loginurl="~/account/login.aspx" timeout="2880"/>         </authentication>         <membership defaultprovider="custommembershipprovider" userisonlinetimewindow="15">             <providers  >                 <clear/>                                 <add name="custommembershipprovider" type="asys.membership.custommembershipprovider"  enablepasswordretrieval="false" enablepasswordreset="true" requiresquestionandanswer="false" requiresuniqueemail="false" maxinvalidpasswordattempts="5" minrequiredpasswordlength="6" minrequirednonalphanumericcharacters="0" passwordattemptwindow="10" applicationname="/" passwordformat="encrypted"  connectionstringname="modelcontainer"   />                           </providers>                     </membership>          <profile>             <providers>                 <clear/>                 <add name="aspnetsqlprofileprovider" type="system.web.profile.sqlprofileprovider" connectionstringname="applicationservices" applicationname="/"/>             </providers>         </profile>         <rolemanager enabled="false">             <providers>                 <clear/>                 <add name="aspnetsqlroleprovider" type="system.web.security.sqlroleprovider" connectionstringname="applicationservices" applicationname="/"/>                 <add name="aspnetwindowstokenroleprovider" type="system.web.security.windowstokenroleprovider" applicationname="/"/>             </providers>         </rolemanager>     </system.web>     <system.webserver>         <modules runallmanagedmodulesforallrequests="true"/>     </system.webserver> </configuration> 

please me solve issue

you need pass name of provider declared in membership section of web.config when create instance of custommembersipuser. not recommanded hardcode value in custommembershipprovider, instead use private field receives value when custommembershipprovider.initialize method called.

for example

public class custommembershipprovider: membershipprovider {     private providername = null;     ...      public override void initialize(string name, namevaluecollection config)     {         providername = name; // friendly name of provider         ...     }      public override membershipuser testcreateuser(string username, bool userisonline)     {         custommembershipuser membershipuser = new custommembershipuser(providername,               username,               guid.parse(userid.tostring()),               email,               passwordquestion,               comment,               isapproved,               islockedout,               creationdate,               lastlogindate,               lastactivitydate,               lastpasswordchangeddate,               lastlockedoutdate, "ss");         ...     } } 

you can see similar more detailed example on msdn.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -