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???
没人知道这个?
我发现问题
- 我使用
HttpContext.Current.Profile.SetPropertyValue()
创建属性,当然是我登录的!!不是新创建的用户!!我是个傻瓜 - 在使用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")