Sql Профиль Провайдер
Я использую DOT NET 4 и VB.NET в веб-приложении.
Я создал все таблицы членства SQL и т. Д. С помощью aspnet_regsql.exe
Я могу войти, добавить пользователя, удалить пользователей, добавить роли и т.д...
Сейчас я пытаюсь использовать таблицу профилей для добавления некоторых полей, которые мне нужно добавить к вновь созданному пользователю при регистрации.
в моем веб-конфиге у меня теперь есть это
<profile defaultProvider="MyProfileProvider" >
<providers>
<clear />
<add name="MyProfileProvider"
connectionStringName="DbConnString"
applicationName="/"
type="System.Web.Profile.SqlProfileProvider"/>
</providers>
<properties>
<add name="OrganizationId" allowAnonymous="false" type="System.Int16" />
</properties>
</profile>
однако сейчас я не могу понять, как его использовать. Если из моего кода я пытаюсь Profile.OrganizationId
это не часть объекта профиля.
если я попробую HttpContext.Current.Profile.SetPropertyValue("OrganizationId", OrgId)
оно работает.
Есть простой способ доступа к методам профиля?
Также.. хотя я вижу значение свойства в таблице aspnet_Profile, равной 115, при попытке получить значение по HttpContext.Current.Profile.GetPropertyValue("OrganizationId")
Я получаю 0 в результате???
никто не имеет представления об этом?
1 ответ
Я нашел проблему (ы)
- Я создавал собственность, используя
HttpContext.Current.Profile.SetPropertyValue()
который, конечно, я вошел в систему! не недавно созданный пользователь!! Я тупица! - Я не вызывал метод.Save() после использования метода set propertyValue()
Итак, окончательный код выглядит следующим образом:
ВЕБ-КОНФИГ
<profile defaultProvider="AspNetSqlProfileProvider" enabled="true" automaticSaveEnabled="true" >
<providers>
<clear />
<add name="AspNetSqlProfileProvider"
connectionStringName="DbConnString"
applicationName="MyApplication"
type="System.Web.Profile.SqlProfileProvider"/>
</providers>
<properties>
<add name="PropertyName" allowAnonymous="false" type="System.Int16" />
</properties>
</profile>
НАЗНАЧИТЬ ЗНАЧЕНИЕ НЕДВИЖИМОСТИ:
Dim MyProfile As ProfileBase
MyProfile = ProfileBase.Create(CreateUserWizard.UserName)
PropertyValue =whatever you want
MyProfile.SetPropertyValue("PropertyName", PropertyValue)
MyProfile.Save()
ПОЛУЧИТЬ ЗНАЧЕНИЕ НЕДВИЖИМОСТИ
Dim MyProfile As ProfileBase
MyProfile = ProfileBase.Create(Membership.GetUser().UserName)
Myproeprty = MyProfile.GetPropertyValue("PropertyName")