This is when I came across a huge set of posts and threads about how complex and confusing it can be to implement the Profile feature if you have a Web Application Project.
Among the confusing, credit should be due to Lee Dumond and Scott Gu as usual for posting some awesome examples in their blogs.
By following Lee's blog, below is my implementation of the same technique to be able to use Profiles in my Web Application Project. I thought it would be a good idea to post it, in order to give you a second example.
Step 1. Created a Class named ProfileInfo which exposes the properties that I want to save in my profile, in this case, let's work with two FirstName and Last Name
namespace Project1.Account { [Serializable] public class ProfileInfo { public string FirstName { get; set; } public string LastName { get; set; } } }
Step 2. Created a second Class named wProfile, this class is inherited from the ProfileBase class and will be used to expose the profile functionality on other pages in the site.
using System.Web; using System.Web.Profile; namespace Project1.Account { public class wProfile : ProfileBase { public ProfileInfo ProfileInfo { get { return (ProfileInfo) GetPropertyValue("ProfileInfo"); } } public static wProfile GetProfile() { return (wProfile) HttpContext.Current.Profile; } public static wProfile GetProfile(string userName) { return (wProfile) Create(userName); } } }
Step 3. Modify your Web.config file to implement a SQLProfileProvider. Notice the "inherits" on the defaultProvider definition. Also noticed that the connection ApplicationServices was previously defined.
<profile defaultProvider="AspNetSqlProfileProvider" inherits="Project1.Account.wProfile"> <providers> <clear/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/wMyApp"/> </providers> </profile>
Step 4. Implementing the logic in my ASPX pages
protected void Page_Load(object sender, EventArgs e) { wProfile lProfile = wProfile.GetProfile(Membership.GetUser().UserName); Label1.Text = "Welcome, " + lProfile.ProfileInfo.FirstName + " " + lProfile.ProfileInfo.LastName; }
Happy Coding, Hope this helps,
Will
It is enough just to use the following constructions to access profile values:
ReplyDeleteTo get value from profile:
HttpContext.Current.Profile.GetPropertyValue("FirstName");
To set value:
HttpContext.Current.Profile.SetPropertyValue("FirstName", "ValueYouWantToSet");
Totally agree with the above comment as long as your project type is not Web Application. Otherwise profiles are not available in the context.
ReplyDeletecould you tell me how to create the new profile in aspnet_Profile?Thank u.
ReplyDeleteJust desire to ѕay your aгticle is as surprіsing.
ReplyDeleteThe сlaritу іn уour post is just cool anԁ i coulԁ assume you are аn еxрert on this ѕubject.
Fine with уour permiѕѕion allow me to gгab your RSS feed to keep updated
with fοrthcoming post. Thankѕ а million and
pleaѕe contіnue the enjоyable ωork.
My blog post; Daniel Chavez Moran
Still if your cаr iѕ in consummate ωorking order,
ReplyDeleteif thе market note vаluе of the vehicle ѕinks beѕіdes what will bе
emplοyed to deciԁe your future policy reportage anԁ auto insurancе gradeѕ.
Look into my web blog - online auto insurance
When іt follows to choοsing аuto insurancе, іt's advisable phoned a No Fault State.
ReplyDeleteMy site auto insurance online
Every ωeekend i useԁ to рay a quick visit this wеb site, because i
ReplyDeletewant enjоyment, аs thiѕ thiѕ ωebsite conatіons in fact ρleаsant funny stuff too.
Feеl fгеe to viѕit mу weblοg -
reputation management
Thank you sir for your nice article, can you please tell me the demo example or simple application that how to use generic list in asp.net profile.
ReplyDelete