我添加了属性"WebSite“作为注册用户的属性。
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="membershipSampleApp" type="System.Web.Profile.SqlProfileProvider"/>
</providers>
<properties>
<add name="Website"/>
</properties>
</profile>该自定义特性存储在ASPNETDB数据库中的什么位置?例如,我是否可以查询它以查找共享同一自定义特性值的所有用户?
如果我想要这种功能,最好用我自己的并行表来扩充USERS表,并在UserName上将这两个表连接起来作为键?
发布于 2010-07-26 00:37:14
是的,你可以扩展会员资格。这是一个long article that explains how to do it。简而言之,
扩展成员接口的想法如下:我将创建一个新的ExtendedMembershipUser类,它继承了MembershipUser的所有默认属性,然后我将添加我自己的自定义属性...
为了在数据库中存储值,它描述了一个:
我添加的
表,用于保存新ExtendedMembershipProvider使用的自定义属性和附带的存储过程的值。
发布于 2010-07-26 01:31:50
我不确定你是如何使用配置文件的“网站”属性的,但是如果你有多个网站使用同一个会员商店,你最好为每个网站指定不同的应用程序名称,这就是多个网站可以使用同一个会员商店的方式。
如果“网站”只是用户的一个属性,那么一定要把它存储在配置文件中。它并不真正保证重写成员资格提供程序。
此外,"Website“属性将存储在aspnet_Profiles表中(作为二进制和XML),这可能很难查询。拥有一个以纯SQL格式存储属性的自定义配置文件提供程序可能更有意义。
发布于 2010-07-26 01:48:21
默认配置文件实现牺牲了易用性和灵活性的可发现性。
如果您想要向用户添加可索引和可查询的元数据,我建议不要扩展成员资格提供程序,因为这不是它们的目的。
一个优秀且易于实现的解决方案是使用基于表的配置文件提供程序。
请参阅http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx
https://stackoverflow.com/questions/3330028
复制相似问题