I cant figure out how to use 'Profile.GetProfile()' method in a library class. I tried using this method in a Page.aspx.cs and it worked perfectly.
How can I make a method that works in the page.aspx.cs, work in the class library.
I cant figure out how to use 'Profile.GetProfile()' method in a library class. I tried using this method in a Page.aspx.cs and it worked perfectly.
How can I make a method that works in the page.aspx.cs, work in the class library.
Have you tried adding reference to System.Web.dll
to your class library and then:
if (HttpContext.Current == null)
{
throw new Exception("HttpContext was not defined");
}
var profile = HttpContext.Current.Profile;
// Do something with the profile
In ASP.NET, Profile is a hook into the HttpContext.Current.Profile property, which returns a dynamically generated object of type ProfileCommon, derived from System.Web.Profile.ProfileBase.
ProfileCommon apparently includes a GetProfile(string username) method, but you wont find it documented officially in MSDN (and it wont show up in intellisense in visual studio) because most of the ProfileCommon class is dynamically generated when your ASP.NET application is compiled (The exact list of properties and methods will depend on how 'profiles' are configured in your web.config). GetProfile() does get a mention on this MSDN page, so it seems to be real.
Perhaps in your library class, the problem is that the configuration info from web.config is not being picked up. Is your library class part of a Solultion that includes a Web Application, or are you just working on the library in isolation?
Here are a couple of resources you should find helpful:
http://leedumond.com/blog/getting-strongly-typed-profile-properties-from-a-class-library/
http://leedumond.com/blog/asp-net-profiles-in-web-application-projects/
Ran into the same problem today. I need access the profile information within the context of a SharePoint alert notification handler (IAlertNotifyHandler). My UserProfile object return null due to the missing HTTPContext. What is your get-around solution for this? Thanks.