我正在使用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
。
我现在在网上搜了好几个小时了,我很无能为力。关于如何解决这个问题的任何想法?
答案 0 :(得分: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>
配置的其余部分看起来不错。
答案 1 :(得分:0)
好吧,我找到了!
看起来“Web应用程序”和“网站”之间的差异之一就是它处理配置文件的方式。网站能够读取web.config文件并动态创建配置文件类,而Web应用程序则不能。据我所知,如果使用Web应用程序项目,应该创建自定义配置文件类。
可在此处找到更多信息:http://www.codersbarn.com/post/2008/06/aspnet-web-site-versus-web-application-project.aspx