.Net SQL Membership Provider自定义提供程序属性

时间:2010-12-16 16:36:15

标签: asp.net membership-provider

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

我的webconfig文件中有上面的代码片段。我试图在register.aspx页面上的codebehind中设置FirstName属性。像这样:

Profile.FirstName = ((TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("FirstName")).Text;  

VS说Profile在System.Web.Profile命名空间中。然后我使用它像“System.Web.Profile.FirstName”,但是说System.Web.Profile.FirstName命名空间中不存在名字。

如何设置属性并稍后检索它?

3 个答案:

答案 0 :(得分:0)

配置文件应该是具有基于System.Web.Profile.ProfileBase的自动生成类的属性,其中包含您在web.config文件中定义的成员。以下是msdn上的链接:http://msdn.microsoft.com/de-de/library/system.web.profile.profilebase.aspx

但我记得我也有问题,该文件不是由visual studio生成的。我找到this post,您可以在其中看到WebProfile生成器作为构建过程的扩展。也许这可以帮到你。

答案 1 :(得分:0)

要获得对配置文件项的强类型访问权限,您需要使用Web Profile Builder等工具。

在网站项目中,Asp.net会自动创建强类型代理类,但不会在Web应用程序项目中自动创建。

答案 2 :(得分:0)

您可以执行以下操作:

ProfileCommon p =(ProfileCommon)ProfileBase.Create(username,true);

p.FirstName =“firstname”;

p.Save();

如果用户已有个人资料,则创建调用将返回现有个人资料,否则会创建新个人资料。

ProfileCommon是一个自动生成的类。