<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
<properties>
<add name="FirstName"/>
<add name="LastName"/>
</properties>
</profile>
I have the code snippet above in my webconfig file. I am attempting to set the FirstName property in codebehind on a register.aspx page. Like this:
Profile.FirstName = ((TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("FirstName")).Text;
VS says Profile is in System.Web.Profile Namespace. I then use it like this "System.Web.Profile.FirstName", but says first name does not exist in System.Web.Profile.FirstName namespace.
How do I set the property and later retrieve it?
Profile should be a property with an autogenerated class based on System.Web.Profile.ProfileBase
which contains the members you defined in your web.config file. Here is the link on msdn: http://msdn.microsoft.com/de-de/library/system.web.profile.profilebase.aspx
But i can remember that i also had the problem, that the file is not generated by visual studio. I found this post where you can see a WebProfile generator as an extension for the build process. Maybe that can help you.
In order to get strongly typed access to the profile items you need to use a tool such as the Web Profile Builder .
In Website projects Asp.net automatically creates the strongly typed proxy classes but they are not automatically created in Web Application projects.
You can do something like:
ProfileCommon p = (ProfileCommon)ProfileBase.Create(username, true);
p.FirstName = "firstname";
p.Save();
if the user already has a profile, the create call will return the existing profile, else it will create a new profile.
ProfileCommon is a autogenerated class.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.