Sql配置文件提供程序

本文关键字:程序 配置文件 Sql | 更新日期: 2023-09-27 17:57:52

我在web应用程序中使用DOT NET 4和VB.NET。

我已经使用aspnet_regsql.exe 创建了所有的SQL成员资格表等

我可以登录,添加用户,删除用户添加角色等…

现在,我正尝试使用配置文件表来添加一些字段,这些字段需要在注册时添加到新创建的用户中。

在我的网络配置中,我现在有了这个

<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),它会起作用。

有一种简单的方法可以访问Profile方法吗?

此外。。尽管我可以看到aspnet_Profile表中的属性值设置为115,但当我尝试通过HttpContext.Current.Profile.GetPropertyValue("OrganizationId")获取该值时,结果是0???

没人知道这个?

Sql配置文件提供程序

我发现问题

  1. 我使用HttpContext.Current.Profile.SetPropertyValue()创建属性,当然是我登录的!!不是新创建的用户!!我是个傻瓜
  2. 在使用set propertyValue()方法后,我没有调用.Save()方法

因此,最终代码如下:

WEB配置

<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")