【发布时间】:2009-08-10 20:18:56
【问题描述】:
我正在使用 ASP.NET 成员资格提供程序来处理我当前站点上的所有成员资格活动。
我遇到了一个奇怪的问题。如您所知,如果您熟悉 Asp.Net 成员资格,则数据存储在 ProfileCommon 中。
所以你可以通过 ProfileCommon.UserId 来获取用户 ID。
这一切都适用于我的生产服务器、暂存服务器以及本地开发服务器上的旧帐户。
但是,如果我在本地开发服务器上创建一个新用户,Profilecommon 对象不会被填充并且它会引发错误,因为页面引用 ProfileCommon.UserId 并且它为空,因此引发异常。用户已通过身份验证,但未填充 ProfileCommon。
是否有人对为什么会发生这种情况有任何想法/建议?
编辑:这是我的 web.config 条目。我不确定为什么我们删除 AspnetSqlProfileProvider 然后添加它。这是我接管的一个网站,我还不是 100% 熟悉 asp.net 会员资格。
<profile defaultProvider="AspNetSqlProfileProvider">
<providers>
<remove name="AspNetSqlProfileProvider"/>
<add name="AspNetSqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="ConnectionString"/>
</providers>
实际的个人资料信息;
<profile defaultProvider="SqlProfileProvider">
<providers>
<remove name="AspNetSqlProfileProvider"/>
<add name="SqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="FiftyMillionDBConnection"/>
</providers>
<properties>
<add name="FirstName" type="String" serializeAs="String"/>
<add name="LastName" type="String" serializeAs="String"/>
<add name="EmailAddress" type="String" serializeAs="String"/>
<add name="ScreenName" type="String" serializeAs="String"/>
<add name="BirthDay" type="DateTime" serializeAs="String"/>
<group name="Address">
<add name="AddressLine1" type="String" serializeAs="String"/>
<add name="AddressLine2" type="String" serializeAs="String"/>
<add name="City" type="String" serializeAs="String"/>
<add name="State" type="String" serializeAs="String"/>
<add name="Zip" type="String" serializeAs="String"/>
</group>
<group name="PersonalInfo">
<add name="Gender" type="String" serializeAs="String"/>
<add name="Height" type="String" serializeAs="String"/>
</group>
<group name="OtherInfo">
<add name="Agent" type="String" serializeAs="String"/>
<add name="Employee" type="String" serializeAs="String"/>
<add name="Source" type="String" serializeAs="String"/>
<add name="EventRegistration" type="String" serializeAs="String"/>
</group>
<group name="AuthInfo">
<add name="GUID" type="String" serializeAs="String"/>
<add name="RegSource" type="String" serializeAs="String"/>
<add name="ReceiveMail" type="String" serializeAs="String"/>
</group>
</properties>
</profile>
谢谢!
【问题讨论】:
标签: asp.net asp.net-membership