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 ответ

Решение

Я нашел проблему (ы)

  1. Я создавал собственность, используя HttpContext.Current.Profile.SetPropertyValue() который, конечно, я вошел в систему! не недавно созданный пользователь!! Я тупица!
  2. Я не вызывал метод.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")
Другие вопросы по тегам