Ошибка пользовательского профиля ASP.NET
У меня проблема с реализацией профиля ASP.NET. Это мой код профиля:
public class UserProfile: ProfileBase
{
public static void Get()
{
return (UserProfile)Create(Membership.GetUser().UserName);
}
public static void Get(string username)
{
return (UserProfile)Create(username);
}
//this property works
[SettingsAllowAnonymous(false)]
public string FirstName
{
get{ return base.GetProperty("FirstName") as String; }
set{ base.SetPropertyValue("FirstName", value); }
}
//this property works
[SettingsAllowAnonymous(false)]
public string LastName
{
get{ return base.GetProperty("LastName") as String; }
set{ base.SetPropertyValue("LastName", value); }
}
//this property throws "The settings property 'Email' was not found." error.
[SettingsAllowAnonymous(false)]
public string EmailAddress
{
get{ return base.GetProperty("Email") as String; }
set{ base.SetPropertyValue("Email", value); }
}
//this property throws "The settings property 'Telephone' was not found." error.
[SettingsAllowAnonymous(false)]
public string TelephoneNumber
{
get{ return base.GetProperty("Telephone") as String; }
set{ base.SetPropertyValue("Telephone", value); }
}
}
Мой веб-конфиг выглядит так:
<profile inherits="UserProfile" defaultProvider="SqlProfileProvider">
<providers>
<add
name="SqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="Profile"
applicationName="Management" />
</providers>
</profile>
По какой-то причине, когда код выполняется, и я получаю или обновляю профиль для текущего пользователя, он взрывается. Однако более любопытно, что свойства FirstName и LastName работают нормально. Ошибки возникают только при доступе / обновлении свойств EmailAddress и TelephoneNumber.
Если я добавлю <properties>
В разделе профиля web.config для свойств FirstName, LastName, EmailAddress и TelephoneNumber отображается другой тип ошибки - "Свойство уже определено" или что-то в этом роде...
Любые идеи о том, как это исправить? Также необходимо знать, что серверной частью системы профилей является SQL Azure, а интерфейсной - служба Azure WCF.
Спасибо,
<bleepzter/>
1 ответ
Вы уверены, что сопоставляете имена своих полей с именами свойств? Адрес электронной почты!= Адрес электронной почты && Телефон!= Номер телефона