2

ASP.NET 4 のすぐに使えるフォーム認証方法を使用しています。ユーザーのプロファイルにいくつかのカスタム プロパティを追加したいので、次のコードをweb.configファイルに追加しました。

<profile enabled="true">

  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" 
         type="System.Web.Profile.SqlProfileProvider" 
         connectionStringName="ApplicationServices" 
         applicationName="/"/>
  </providers> 

  <properties>        
    <add name="DisplayName"/>
    <add name="PhoneNumber"/>
    <add name="FaxNumber"/>
    <add name="Email"/>
  </properties>

</profile>

しかし、次のようなものを使用して aspx ファイル内のこれらのプロパティにアクセスしようとすると:

TextBox.Text = Profile.DisplayName;

私は下に赤い線を引いてDisplayName、それは言っていProjectName.Profile does not contain a definition for DisplayNameます.

私は数時間ネットを検索しましたが、まったく無知です。これを修正する方法についてのアイデアはありますか?

4

2 に答える 2

0

プロファイル ノードで defaultProvider 属性を設定してみてください

<profile defaultProvider="AspNetSqlProfileProvider">

プロバイダーが機能するように定義されたメンバーシップセクションと接続文字列もあると思いますか?

そうでない場合は、おそらく必要になります

<membership defaultProvider="SqlProvider" 
      userIsOnlineTimeWindow="15">
      <providers>
        <clear/>
        <add name="SqlProvider" 
          type="System.Web.Security.SqlMembershipProvider" 
          connectionStringName="SqlServices"
          applicationName="SampleApplication"
          enablePasswordRetrieval="true"
          enablePasswordReset="true"
          passwordFormat="Encrypted"
          requiresQuestionAndAnswer="true" />
      </providers>
    </membership>

 <connectionStrings>
    <add name="SqlServices" connectionString=
      "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
  </connectionStrings>

残りの構成は問題ないようです。

于 2012-09-10T16:23:31.400 に答える
0

よし、見つけた!

「Web アプリケーション」と「Web サイト」の違いの 1 つは、プロファイルの処理方法にあるようです。Web サイトには、web.config ファイルを読み取り、プロファイル クラスを動的に作成する機能がありますが、Web アプリケーションにはできません。私の知る限り、Web アプリケーション プロジェクトを使用する場合は、カスタム プロファイル クラスを作成する必要があります。

詳細については、http: //www.codersbarn.com/post/2008/06/aspnet-web-site-versus-web-application-project.aspxを参照してください。

于 2012-09-11T19:58:35.517 に答える