簡體   English   中英

ASP.NET成員資格未填充新用戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM