Check out this post by Phil Haack. Or this one on develoq
You can create a new Base page for your views that has your Profile object as a property.
public abstract class ProfileWebViewPage<T> : System.Web.Mvc.WebViewPage
{
public UserProfile Profile { get; set; }
public override void InitHelpers()
{
base.InitHelpers();
//Set your Profile here.
}
}
Then set it as the base type in the webconfig (in the views folder):
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="MyProject.ProfileWebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
Then you can simply access it by this:
@Profile.FullName
EDIT
Okay, sorry, I thought you had the information and was just looking for a way to access it on your pages.
You can't (AFAIK) access custom profile information with the SimpleMembershipProvider. I think you need to be looking into a custom ProfileProvider (http://dotnetnsqlcorner.blogspot.co.nz/2012/05/implementing-custom-profile-in-aspnet.html) or check out using SqlProfileProvider (Implementing Profile Provider in ASP.NET MVC)
Or:
YOu could just use EF to do the data access to go straight to the profile (using what ever DB context UserProfile is under:
Profile = (new UsersContext()).UserProfiles.SingleOrDefault(u => u.UserName = User.Identity.Name)