[英]ASP.NET Membership not populating new users
我正在使用ASP.NET成員資格提供程序來處理當前站點上的所有成員資格活動。
我遇到了一個奇怪的問題。 如您所知,如果您熟悉Asp.Net成員身份,則數據將存儲在ProfileCommon中。
因此,您可以執行ProfileCommon.UserId以獲取用戶ID。
所有這些在我的生產服務器,登台服務器以及本地開發服務器上的舊帳戶上都可以正常工作。
但是,如果我在本地開發服務器上創建一個新用戶,則不會填充Profilecommon對象,並且會拋出錯誤,因為頁面例如引用ProfileCommon.UserId且該對象為null,從而引發異常。 用戶已通過身份驗證,但沒有填充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>
謝謝!
web.config中的“個人檔案”部分是否使用與“成員資格”部分相同的connectionStringName值? 這是我要檢查的第一件事。
編輯:您可以發布完整的配置文件配置塊嗎? 您應該有一些定義屬性的內容,例如
<profile enabled="true">
<properties>
<add name="UserId" type="Int32"/>
<add name="Gender" type="string"/>
<add name="Age" type="Int32"/>
</properties>
</profile>
除了connectionStringName
,您可能還需要仔細檢查applicationName
。 如果它們不匹配,或者您在一個部分而不是另一部分中定義了應用程序名稱,則會遇到問題。
<membership defaultProvider="SqlProvider">
<providers>
<add name="SqlProvider"
type="..."
connectionStringName="SomeConnString"
applicationName="SomeApp"
...
... />
</providers>
</membership>
<profile defaultProvider="ProfileProvider">
<providers>
<clear />
<add name="ProfileProvider"
type="..."
applicationName="SomeApp"/>
</providers>
<properties>
...
</properties>
</profile>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.