正在将具有配置文件的网站转换为web应用程序项目
本文关键字:转换 web 应用程序 项目 网站 配置文件 | 更新日期: 2023-09-27 18:29:19
我正试图将一个现有的网站转换为Web应用程序项目,但我在让配置文件正常工作时遇到了很大的问题。
网站项目中代码隐藏的一个例子是
注册角色和配置文件.ascx.cs
// Add the newly created user to the default Role.
Roles.AddUserToRole(CreateUserWizard1.UserName, wsatDefaultRole);
// Create an empty Profile for the newly created user
ProfileCommon p = (ProfileCommon)ProfileCommon.Create(CreateUserWizard1.UserName, true);
// Populate some Profile properties. Values are located in web.config file
p.Company.Company = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbOfficeName")).Text;
p.Company.Address = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbOfficeAddress")).Text;
p.Company.City = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbOfficeCity")).Text;
p.Company.State = ((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ddlStates")).SelectedValue;
p.Company.PostalCode = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbOfficeZip")).Text;
p.Company.Phone = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbContactPhone")).Text;
p.Company.Fax = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbContactFax")).Text;
p.Preferences.Newsletter = ((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ddlNewsletter")).SelectedValue;
// Save profile - must be done since we explicitly created it
p.Save();
web.config
<profile defaultProvider="MyCMSTableProfileProvider" automaticSaveEnabled="false" enabled="true">
<providers>
<clear/>
<add name="MyCMSTableProfileProvider" applicationName="MyCMS" connectionStringName="dbMyCMSConnectionString" table="aspnet_CustomProfile" type="CustomProfile.SqlTableProfileProvider"/>
<add name="MyCMSStoredProcedureProfileProvider" applicationName="MyCMS" connectionStringName="dbMyCMSConnectionString" type="CustomProfile.SqlStoredProcedureProfileProvider" setProcedure="sp_wsat_SetCustomProfileData" readProcedure="sp_wsat_GetCustomProfileData"/>
</providers>
<properties>
<group name="Personal">
<add name="FirstName" type="String" defaultValue="[null]" customProviderData="FirstName;nvarchar"/>
<add name="LastName" type="String" defaultValue="[null]" customProviderData="LastName;nvarchar"/>
<add name="Gender" type="String" defaultValue="[null]" customProviderData="Gender;nvarchar"/>
<add name="BirthDate" type="DateTime" defaultValue="[null]" customProviderData="BirthDate;datetime"/>
<add name="Occupation" type="String" defaultValue="[null]" customProviderData="Occupation;nvarchar"/>
<add name="Website" type="String" defaultValue="[null]" customProviderData="PersonalWebsite;nvarchar"/>
</group>
<group name="Address">
<add name="Country" type="String" defaultValue="[null]" customProviderData="Country;nvarchar"/>
<add name="Address" type="String" defaultValue="[null]" customProviderData="Address;nvarchar"/>
<add name="AptNumber" type="String" defaultValue="[null]" customProviderData="AptNumber;nvarchar"/>
<add name="City" type="String" defaultValue="[null]" customProviderData="City;nvarchar"/>
<add name="State" type="String" defaultValue="[null]" customProviderData="State;nvarchar"/>
<add name="PostalCode" type="String" defaultValue="[null]" customProviderData="PostalCode;nvarchar"/>
</group>
<group name="Contacts">
<add name="DayPhone" type="String" defaultValue="[null]" customProviderData="DayPhone;nvarchar"/>
<add name="DayPhoneExt" type="String" defaultValue="[null]" customProviderData="DayPhoneExt;nvarchar"/>
<add name="EveningPhone" type="String" defaultValue="[null]" customProviderData="EveningPhone;nvarchar"/>
<add name="EveningPhoneExt" type="String" defaultValue="[null]" customProviderData="EveningPhoneExt;nvarchar"/>
<add name="CellPhone" type="String" defaultValue="[null]" customProviderData="CellPhone;nvarchar"/>
<add name="Fax" type="String" defaultValue="[null]" customProviderData="Fax;nvarchar"/>
</group>
<group name="Company">
<add name="Company" type="String" defaultValue="[null]" customProviderData="Company;nvarchar"/>
<add name="Address" type="String" defaultValue="[null]" customProviderData="Address2;nvarchar"/>
<add name="City" type="String" defaultValue="[null]" customProviderData="City2;nvarchar"/>
<add name="State" type="String" defaultValue="[null]" customProviderData="State2;nvarchar"/>
<add name="PostalCode" type="String" defaultValue="[null]" customProviderData="PostalCode2;nvarchar"/>
<add name="Phone" type="String" defaultValue="[null]" customProviderData="Phone2;nvarchar"/>
<add name="Fax" type="String" defaultValue="[null]" customProviderData="Fax2;nvarchar"/>
<add name="Website" type="String" defaultValue="[null]" customProviderData="Website2;nvarchar"/>
</group>
<group name="Preferences">
<add name="Culture" type="String" defaultValue="en-US" customProviderData="Culture;nvarchar"/>
<add name="Newsletter" type="String" defaultValue="[null]" customProviderData="Newsletter;nvarchar"/>
</group>
</properties>
</profile>
但这会产生错误The type or namespace name 'ProfileCommon' could not be found (are you missing a using directive or an assembly reference?)
使用这个例子,我创建了2个新类
ProfileInfo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace myWSAT.controls
{
[Serializable]
public class Personal
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public DateTime BirthDate { get; set; }
public string Occupation { get; set; }
public string Website { get; set; }
}
[Serializable]
public class Address
{
public string Country { get; set; }
public string Address1 { get; set; }
public string AptNumber { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
}
[Serializable]
public class Contacts
{
public string DayPhone { get; set; }
public string DayPhoneExt { get; set; }
public string EveningPhone { get; set; }
public string EveningPhoneExt { get; set; }
public string CellPhone { get; set; }
public string Fax { get; set; }
}
[Serializable]
public class Company
{
public string CompanyName { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
public string Phone { get; set; }
public string Fax { get; set; }
public string Website { get; set; }
}
[Serializable]
public class Preferences
{
public string Culture { get; set; }
public string Newsletter { get; set; }
}
[Serializable]
public class ProfileInfo
{
public Personal Personal { get; set; }
public Address Address { get; set; }
public Contacts Contacts { get; set; }
public Company Company { get; set; }
public Preferences Preferences { get; set; }
}
}
wProfile.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Profile;
namespace myWSAT.controls
{
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);
}
}
}
然后修改使用角色和配置文件.ascx.cs注册到
// add newly created user to default Role specified above
if (Roles.RoleExists(wsatDefaultRole))
{
// Add the newly created user to the default Role.
Roles.AddUserToRole(CreateUserWizard1.UserName, wsatDefaultRole);
// Create an empty Profile for the newly created user
wProfile p = wProfile.GetProfile(Membership.GetUser().UserName);
//ProfileCommon p = (ProfileCommon)ProfileCommon.Create(CreateUserWizard1.UserName, true);
// Populate some Profile properties. Values are located in web.config file
p.ProfileInfo.Company.CompanyName = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbOfficeName")).Text;
p.ProfileInfo.Company.Address = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbOfficeAddress")).Text;
p.ProfileInfo.Company.City = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbOfficeCity")).Text;
p.ProfileInfo.Company.State = ((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ddlStates")).SelectedValue;
p.ProfileInfo.Company.PostalCode = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbOfficeZip")).Text;
p.ProfileInfo.Company.Phone = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbContactPhone")).Text;
p.ProfileInfo.Company.Fax = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txbContactFax")).Text;
p.ProfileInfo.Preferences.Newsletter = ((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ddlNewsletter")).SelectedValue;
// Save profile - must be done since we explicitly created it
p.Save();
}
这个构建和运行正常,但下面的行总是返回null。
wProfile p = wProfile.GetProfile(Membership.GetUser().UserName);
我不知道怎么了?我也尝试了这个链接底部的例子,但没有成功
编辑:
我已经阅读了很多链接,并尝试了一些解决方案,但我的专业知识是这个领域不太好。我想我是在寻求一些语法方面的帮助,让它运行起来,我可能会在可能的时候提供奖励。
编辑:如果我附上我尝试将其转换为WAP的当前状态,这可能会有所帮助。http://www.mediafire.com/?ouabeoxwu75b52c
一个问题是您正在调用Membership.GetUser()
重载,该重载将加载当前登录用户的用户详细信息。由于这似乎是用户可以注册自己的页面的一部分,这意味着代码运行时没有当前登录的用户。
您可能应该将行更改为:
wProfile p = wProfile.GetProfile(Membership.GetUser(CreateUserWizard1.UserName).UserName);
这是假设您此时已经创建了用户。或者更简单:
wProfile p = wProfile.GetProfile(CreateUserWizard1.UserName);
但我建议您也更改wProfile
类,以便GetProfile(string userName)
加载并返回用户名为userName
的用户的配置文件。然后添加一个显式CreateProfile(string userName)
方法,当您想要创建配置文件时可以使用该方法。在我看来,创建一个新的概要文件作为GetProfile
方法的副作用不是一个好主意。
代码可能是:
wProfile p = wProfile.CreateProfile(CreateUserWizard1.UserName);
您的Membership.GetUser()
返回null,这可能是由以下原因引起的:
-
您未通过身份验证,
Membership.GetUser()
仅适用于经过身份验证的用户。否则,它将返回null。要验证您正在处理经过身份验证的请求,请调用页面上的User.Identity.IsAuthenticated
。如果您收到了一个经过身份验证的请求,但Membership.GetUser()
仍然返回null,那么这意味着在Membership数据源中找不到与经过身份验证用户相关联的用户名。使用"user.Identity.Name"验证已验证用户的用户名。 -
如果您正在调用一个
Membership.GetUser()
重载,该重载使用用户名,并且返回null,那么Membership数据源中不存在该用户(或者我们有一个错误)。一种容易验证的方法是尝试使用相同用户名的Membership.CreateUser()
。如果这并没有因为重复的用户而引发错误,那么您就知道该用户从一开始就不存在。 -
Membership.GetUser()
不应该为匿名用户工作。Membership中没有为处理此案件提供任何支持。
来源:MSDN论坛
但是,如果Membership.GetUser()返回null,我将更改这一行:
wProfile p = wProfile.GetProfile(Membership.GetUser().UserName);
至
if (Membership.GetUser() != null)
{
wProfile p = wProfile.GetProfile(Membership.GetUser().UserName);
} else {
// do whatever you want to do when the user is null, maybe some error or create the user
}
我浏览了您的解决方案和所有的注释。对我来说,尽管有一件小事,但一切看起来都很好。我注意到web.config中的profile元素没有使用inherits
属性(http://msdn.microsoft.com/en-us/library/ms164644(v=vs.85).aspx)。尝试添加这样一个带有值的属性,该值是从ProfileBase
抽象类派生的自定义类型的类型引用,在您的特定示例中为wProfile
,如下所示:
<profile defaultProvider="MyCMSTableProfileProvider"
automaticSaveEnabled="false"
enabled="true"
inherits="myWSAT.controls.wProfile">
如果更改后出现问题,请对自定义提供程序进行相应的更改。更重要的是,我发现了您可能感兴趣的类似线程:如何分配Profile值?
为了完整性,如果有人遇到类似的困难,下面是我将示例网站转换为web应用程序项目的确切步骤
1) 使用此演练进行主转换。这里的要点是只将.dll复制到新的项目bin文件夹,然后先复制App_Code文件夹并转换到Web应用程序,然后再添加其他页面和文件夹。
2) 当项目转换为web应用程序时,某些命名空间、类和类型名可能无法正确更新,或者根据项目名称而有所不同。通常情况下,代码隐藏会正确更新,但Web.Config TypeNames不会。我遇到的主要是theme classes
和sp_cpanelTableAdapters
,其中大约有20个类型名称需要更改,例如更改
class admin_themes_default_default
至class admin_themes_dark_default
TypeName="sp_cpanelTableAdapters.admin_HintsTableAdapter"
至TypeName="myWSAT_WAP.xsd.sp_cpanelTableAdapters.admin_HintsTableAdapter"
3) 下面显示了使配置文件在此web应用程序中工作的代码。我只在用户控件membership-info.ascx
中显示了profileCommon的替换代码——该代码在所有其他用户控件中实际上是相同的,所以我不再重复。根据Jaroslaw Waliszko的回答,注意Web.Config现在包括inherits="myWSAT_WAP.controls.wProfile"
,并且现在使用标准概要文件提供程序而不是自定义提供程序。
//ProfileInfo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
Namespace myWSAT_WAP.Controls
{
[Serializable]
public class Personal
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public DateTime BirthDate { get; set; }
public string Occupation { get; set; }
public string Website { get; set; }
}
[Serializable]
public class Address
{
public string Country { get; set; }
public string Address1 { get; set; }
public string AptNumber { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
}
[Serializable]
public class Contacts
{
public string DayPhone { get; set; }
public string DayPhoneExt { get; set; }
public string EveningPhone { get; set; }
public string EveningPhoneExt { get; set; }
public string CellPhone { get; set; }
public string Fax { get; set; }
}
[Serializable]
public class Company
{
public string CompanyName { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
public string Phone { get; set; }
public string Fax { get; set; }
public string Website { get; set; }
}
[Serializable]
public class Preferences
{
public string Culture { get; set; }
public string Newsletter { get; set; }
}
[Serializable]
public class ProfileInfo
{
public Personal Personal { get; set; }
public Address Address { get; set; }
public Contacts Contacts { get; set; }
public Company Company { get; set; }
public Preferences Preferences { get; set; }
}
}
//wProfile.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Profile;
Namespace myWSAT_WAP.Controls
{
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);
}
}
}
//Web.config
<profile defaultProvider="MyCMSSqlProfileProvider" automaticSaveEnabled="false" inherits="myWSAT_WAP.controls.wProfile">
<providers>
<clear/>
<add name="MyCMSSqlProfileProvider" connectionStringName="dbMyCMSConnectionString" applicationName="MyCMS" type="System.Web.Profile.SqlProfileProvider"/>
</providers>
<properties>
<group name="Personal">
<add name="FirstName" type="String"/>
<add name="LastName" type="String"/>
<add name="Gender" type="String"/>
<add name="BirthDate" type="DateTime"/>
<add name="Occupation" type="String"/>
<add name="Website" type="String"/>
</group>
<group name="Address">
<add name="Country" type="String"/>
<add name="Address" type="String"/>
<add name="AptNumber" type="String"/>
<add name="City" type="String"/>
<add name="State" type="String"/>
<add name="PostalCode" type="String"/>
</group>
<group name="Contacts">
<add name="DayPhone" type="String"/>
<add name="DayPhoneExt" type="String"/>
<add name="EveningPhone" type="String"/>
<add name="EveningPhoneExt" type="String"/>
<add name="CellPhone" type="String"/>
<add name="Fax" type="String"/>
</group>
<group name="Company">
<add name="Company" type="String"/>
<add name="Address" type="String"/>
<add name="City" type="String"/>
<add name="State" type="String"/>
<add name="PostalCode" type="String"/>
<add name="Phone" type="String"/>
<add name="Fax" type="String"/>
<add name="Website" type="String"/>
</group>
<group name="Preferences">
<add name="Culture" type="String" defaultValue="en-US"/>
<add name="Newsletter" type="String"/>
</group>
</properties>
</profile>
//membership-info.ascx
#region on page load get current profile
protected void Page_Load(object sender, EventArgs e)
{
// Get Profile
if (!Page.IsPostBack)
{
if (Page.User.Identity.IsAuthenticated)
{
// get country names from app_code folder
// bind country names to the dropdown list
ddlCountries.DataSource = CountryNames.CountryNames.GetCountries();
ddlCountries.DataBind();
// get state names from app_code folder
// bind state names to the dropdown lists in address info and company info section
ddlStates1.DataSource = UnitedStates.StateNames.GetStates();
ddlStates1.DataBind();
ddlStates2.DataSource = UnitedStates.StateNames.GetStates();
ddlStates2.DataBind();
// get the selected user's profile based on query string
wProfile profile = wProfile.GetProfile();
//profileCommon profile = Profile;
// Subscriptions
ddlNewsletter.SelectedValue = profile.GetProfileGroup("Preferences").GetPropertyValue("Newsletter").ToString();
//ddlNewsletter.SelectedValue = profile.Preferences.Newsletter;
// Personal Info
txtFirstName.Text = profile.GetProfileGroup("Personal").GetPropertyValue("FirstName").ToString();
txtLastName.Text = profile.GetProfileGroup("Personal").GetPropertyValue("LastName").ToString();
ddlGenders.SelectedValue = profile.GetProfileGroup("Personal").GetPropertyValue("Gender").ToString();
if ((DateTime)profile.GetProfileGroup("Personal").GetPropertyValue("BirthDate") != DateTime.MinValue)
txtBirthDate.Text = profile.GetProfileGroup("Personal").GetPropertyValue("BirthDate").ToString();
ddlOccupations.SelectedValue = profile.GetProfileGroup("Personal").GetPropertyValue("Occupation").ToString();
txtWebsite.Text = profile.GetProfileGroup("Personal").GetPropertyValue("Website").ToString();
//txtFirstName.Text = profile.Personal.FirstName;
//txtLastName.Text = profile.Personal.LastName;
//ddlGenders.SelectedValue = profile.Personal.Gender;
//if (profile.Personal.BirthDate != DateTime.MinValue)
// txtBirthDate.Text = profile.Personal.BirthDate.ToShortDateString();
//ddlOccupations.SelectedValue = profile.Personal.Occupation;
//txtWebsite.Text = profile.Personal.Website;
// Address Info
ddlCountries.SelectedValue = profile.GetProfileGroup("Address").GetPropertyValue("Country").ToString();
txtAddress.Text = profile.GetProfileGroup("Address").GetPropertyValue("Address").ToString();
txtAptNumber.Text = profile.GetProfileGroup("Address").GetPropertyValue("AptNumber").ToString();
txtCity.Text = profile.GetProfileGroup("Address").GetPropertyValue("City").ToString();
ddlStates1.SelectedValue = profile.GetProfileGroup("Address").GetPropertyValue("State").ToString();
txtPostalCode.Text = profile.GetProfileGroup("Address").GetPropertyValue("PostalCode").ToString();
//ddlCountries.SelectedValue = profile.Address.Country;
//txtAddress.Text = profile.Address.Address;
//txtAptNumber.Text = profile.Address.AptNumber;
//txtCity.Text = profile.Address.City;
//ddlStates1.SelectedValue = profile.Company.State;
//txtPostalCode.Text = profile.Address.PostalCode;
// Contact Info
txtDayTimePhone.Text = profile.GetProfileGroup("Contacts").GetPropertyValue("DayPhone").ToString();
txtDayTimePhoneExt.Text = profile.GetProfileGroup("Contacts").GetPropertyValue("DayPhoneExt").ToString();
txtEveningPhone.Text = profile.GetProfileGroup("Contacts").GetPropertyValue("EveningPhone").ToString();
txtEveningPhoneExt.Text = profile.GetProfileGroup("Contacts").GetPropertyValue("EveningPhoneExt").ToString();
txtCellPhone.Text = profile.GetProfileGroup("Contacts").GetPropertyValue("CellPhone").ToString();
txtHomeFax.Text = profile.GetProfileGroup("Contacts").GetPropertyValue("Fax").ToString();
//txtDayTimePhone.Text = profile.Contacts.DayPhone;
//txtDayTimePhoneExt.Text = profile.Contacts.DayPhoneExt;
//txtEveningPhone.Text = profile.Contacts.EveningPhone;
//txtEveningPhoneExt.Text = profile.Contacts.EveningPhoneExt;
//txtCellPhone.Text = profile.Contacts.CellPhone;
//txtHomeFax.Text = profile.Contacts.Fax;
// Company Info
txbCompanyName.Text = profile.GetProfileGroup("Company").GetPropertyValue("Company").ToString();
txbCompanyAddress.Text = profile.GetProfileGroup("Company").GetPropertyValue("Address").ToString();
txbCompanyCity.Text = profile.GetProfileGroup("Company").GetPropertyValue("City").ToString();
ddlStates2.SelectedValue = profile.GetProfileGroup("Company").GetPropertyValue("State").ToString();
txbCompanyZip.Text = profile.GetProfileGroup("Company").GetPropertyValue("PostalCode").ToString();
txbCompanyPhone.Text = profile.GetProfileGroup("Company").GetPropertyValue("Phone").ToString();
txbCompanyFax.Text = profile.GetProfileGroup("Company").GetPropertyValue("Fax").ToString();
txbCompanyWebsite.Text = profile.GetProfileGroup("Company").GetPropertyValue("Website").ToString();
//txbCompanyName.Text = profile.Company.Company;
//txbCompanyAddress.Text = profile.Company.Address;
//txbCompanyCity.Text = profile.Company.City;
//ddlStates2.SelectedValue = profile.Company.State;
//txbCompanyZip.Text = profile.Company.PostalCode;
//txbCompanyPhone.Text = profile.Company.Phone;
//txbCompanyFax.Text = profile.Company.Fax;
//txbCompanyWebsite.Text = profile.Company.Website;
// Subscriptions
ddlNewsletter.SelectedValue = profile.GetProfileGroup("Preferences").GetPropertyValue("Newsletter").ToString();
//ddlNewsletter.SelectedValue = profile.Preferences.Newsletter;
}
}
}
#endregion
#region Update current Profile Sub
public void SaveProfile()
{
if (Page.User.Identity.IsAuthenticated)
{
// get the selected user's profile
wProfile profile = wProfile.GetProfile();
//ProfileCommon profile = Profile;
// Personal Info
profile.GetProfileGroup("Personal").SetPropertyValue("FirstName", txtFirstName.Text);
profile.GetProfileGroup("Personal").SetPropertyValue("LastName", txtLastName.Text);
profile.GetProfileGroup("Personal").SetPropertyValue("Gender", ddlGenders.SelectedValue);
if (txtBirthDate.Text.Trim().Length > 0)
profile.GetProfileGroup("Personal").SetPropertyValue("BirthDate", DateTime.Parse(txtBirthDate.Text));
profile.GetProfileGroup("Personal").SetPropertyValue("Occupation", ddlOccupations.SelectedValue);
profile.GetProfileGroup("Personal").SetPropertyValue("Website", txtWebsite.Text);
//profile.Personal.FirstName = txtFirstName.Text;
//profile.Personal.LastName = txtLastName.Text;
//profile.Personal.Gender = ddlGenders.SelectedValue;
//if (txtBirthDate.Text.Trim().Length > 0)
// profile.Personal.BirthDate = DateTime.Parse(txtBirthDate.Text);
//profile.Personal.Occupation = ddlOccupations.SelectedValue;
//profile.Personal.Website = txtWebsite.Text;
// Address Info
profile.GetProfileGroup("Address").SetPropertyValue("Country", ddlCountries.SelectedValue);
profile.GetProfileGroup("Address").SetPropertyValue("Address", txtAddress.Text);
profile.GetProfileGroup("Address").SetPropertyValue("AptNumber", txtAptNumber.Text);
profile.GetProfileGroup("Address").SetPropertyValue("City", txtCity.Text);
profile.GetProfileGroup("Address").SetPropertyValue("State", ddlStates1.Text);
profile.GetProfileGroup("Address").SetPropertyValue("PostalCode", txtPostalCode.Text);
//profile.Address.Country = ddlCountries.SelectedValue;
//profile.Address.Address = txtAddress.Text;
//profile.Address.AptNumber = txtAptNumber.Text;
//profile.Address.City = txtCity.Text;
//profile.Address.State = ddlStates1.Text;
//profile.Address.PostalCode = txtPostalCode.Text;
// Contact Info
profile.GetProfileGroup("Contacts").SetPropertyValue("DayPhone", txtDayTimePhone.Text);
profile.GetProfileGroup("Contacts").SetPropertyValue("DayPhoneExt", txtDayTimePhoneExt.Text);
profile.GetProfileGroup("Contacts").SetPropertyValue("EveningPhone", txtEveningPhone.Text);
profile.GetProfileGroup("Contacts").SetPropertyValue("EveningPhoneExt", txtEveningPhoneExt.Text);
profile.GetProfileGroup("Contacts").SetPropertyValue("CellPhone", txtCellPhone.Text);
profile.GetProfileGroup("Contacts").SetPropertyValue("Fax", txtHomeFax.Text);
//profile.Contacts.DayPhone = txtDayTimePhone.Text;
//profile.Contacts.DayPhoneExt = txtDayTimePhoneExt.Text;
//profile.Contacts.EveningPhone = txtEveningPhone.Text;
//profile.Contacts.EveningPhoneExt = txtEveningPhoneExt.Text;
//profile.Contacts.CellPhone = txtCellPhone.Text;
//profile.Contacts.Fax = txtHomeFax.Text;
// Company Info
profile.GetProfileGroup("Company").SetPropertyValue("Company", txbCompanyName.Text);
profile.GetProfileGroup("Company").SetPropertyValue("Address", txbCompanyAddress.Text);
profile.GetProfileGroup("Company").SetPropertyValue("City", txbCompanyCity.Text);
profile.GetProfileGroup("Company").SetPropertyValue("State", ddlStates2.SelectedValue);
profile.GetProfileGroup("Company").SetPropertyValue("PostalCode", txbCompanyZip.Text);
profile.GetProfileGroup("Company").SetPropertyValue("Phone", txbCompanyPhone.Text);
profile.GetProfileGroup("Company").SetPropertyValue("Fax", txbCompanyFax.Text);
profile.GetProfileGroup("Company").SetPropertyValue("Website", txbCompanyWebsite.Text);
//profile.Company.Company = txbCompanyName.Text;
//profile.Company.Address = txbCompanyAddress.Text;
//profile.Company.City = txbCompanyCity.Text;
//profile.Company.State = ddlStates2.SelectedValue;
//profile.Company.PostalCode = txbCompanyZip.Text;
//profile.Company.Phone = txbCompanyPhone.Text;
//profile.Company.Fax = txbCompanyFax.Text;
//profile.Company.Website = txbCompanyWebsite.Text;
// Subscriptions
profile.GetProfileGroup("Preferences").SetPropertyValue("Newsletter", ddlNewsletter.SelectedValue);
//profile.Preferences.Newsletter = ddlNewsletter.SelectedValue;
// this is what we will call from the button click
// to save the user's profile
profile.Save();
}
}
#endregion