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.config 文件并动态创建配置文件类,而 Web 应用程序则不能。据我了解,如果使用 Web 应用程序项目,应该创建一个自定义配置文件类。

更多信息可以在这里找到:http: //www.codersbarn.com/post/2008/06/aspnet-web-site-versus-web-application-project.aspx

于 2012-09-11T19:58:35.517 回答