65.9K
CodeProject 正在变化。 阅读更多。
Home

C# MySQL .NET 2.0 配置文件提供程序

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.17/5 (15投票s)

2006年6月23日

3分钟阅读

viewsIcon

223881

downloadIcon

977

这是一个用 C# 编写的、基于 MySQL 的 .NET 2.0 配置文件提供程序。

引言

本文介绍的是一个MySql 配置文件提供程序

我不是从头开始编写这个配置文件提供程序的。我使用了 Microsoft SDK 中的一个 Microsoft Access 配置文件提供程序的示例,并对其进行了修改,使其与 MySQL 配合使用。

如果您不熟悉 .NET 2.0 提供程序技术,请参考这篇文章,了解会员资格和角色提供程序的工作原理。 Rakotomalala Andriniaina 提供的 MySQL 会员资格和角色提供程序

注意:此配置文件提供程序是为与另一个 CodeProject 文章中的特定 MySQL 会员资格和角色提供程序一起使用而编写的。除非会员资格和角色提供程序已设置并正在运行,否则此配置文件提供程序将无法工作! 本文的源代码下载已更新,包括 MYSQL 角色、会员资格和配置文件提供程序的源代码。

如果您不熟悉 .NET 2.0 提供程序技术,请参考这篇文章,了解会员资格和角色提供程序的工作原理。但是,请不要使用以下链接中的源代码,因为代码已在上方的链接中更新:Rakotomalala Andriniaina 提供的 MySQL 会员资格和角色提供程序

使用提供程序

步骤 1: 添加两个新表,aspnet_profileaspnet_applications

CREATE TABLE 'aspnet_profile' (
  'UserId' bigint(20) default NULL,
  'PropertyNames' text,
  'PropertyValuesString' text,
  'LastUpdatedDate' datetime default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE 'aspnet_applications' (
  'ApplicationName' text,
  'ApplicationId' int(11) NOT NULL auto_increment,
  'Description' text,
  PRIMARY KEY  ('ApplicationId')
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

步骤 2:MySqlProfileProvider.cs 源代码文件添加到项目的 app_code 中。如果您使用 VB.NET,则有两个选项

  • 向您的解决方案中添加一个 C# 类库项目。然后,将 MySqlProfileProvider.cs 源代码文件添加到类库项目中。添加以下引用:MySql.DataSystem.configurationSystem.Web。接下来,添加一个指向您刚添加到将使用配置文件提供程序的原始项目的新类库项目的项目引用。当您编译解决方案时,C# 类库项目将首先编译并创建 DLL,因为它被主项目引用。即使您的主项目是 VB.NET,此方法也允许您使用您的主项目调试 C# 代码。

    注意:您也可以将此方法用于您的会员资格和角色提供程序源代码。只需为每个提供程序源文件添加一个单独的 C# 类库项目。

  • 您需要将 C# 源代码编译成 DLL,然后将引用添加到您的项目中。 这里有一个链接(MySQL 的会员资格和角色提供程序),解释了将源代码编译成 VB.NET 的 DLL。

步骤 3: 修改 Web.config

<connectionStrings>
 <add name="ConnString" 
      connectionString="Database=;DataSource=;User Id=;Password=;"/>
</connectionStrings>

<profile defaultProvider="MySqlProfileProvider">
  <providers>
    <add name="MySqlProfileProvider" 
         type="Malachi.MySqlProviders.MySqlProfileProvider"
         connectionStringName="ConnString" 
         applicationName="Intranet"/>
  </providers>
  <properties>
    <add name="FirstName" />
    <add name="LastName" />
  </properties>
</profile>

步骤 4: 创建用户。

为了使此配置文件提供程序正常工作,您必须使用上述文章中的会员资格提供程序,并通过该会员资格提供程序创建用户。配置文件提供程序是用户的一个扩展。配置文件属性记录通过 UserId 字段链接到用户表。UserId 字段应该自动递增,以便在创建用户时填充。如果您想在创建用户时填充和创建配置文件属性,则需要重写 ASP.NET 控件 "CreateUserWizard"。我将尝试很快写另一篇文章,介绍如何做到这一点。否则,请使用页面加载或其他事件中的下一步中的方法。

步骤 5: 读取和写入配置文件属性。

这是登录页面的代码隐藏。此示例使用 VB.NET。

Protected Sub Page_Load(ByVal sender As Object, _
          ByVal e As System.EventArgs) Handles Me.Load
    If User.Identity.IsAuthenticated Then
        IntranetLogin.Visible = False
        Profile.GetProfile(User.Identity.Name)
        lblWelcome.Text = "<p><strong>Welcome back " & _
                          Profile.FirstName & " " & Profile.LastName & _
                          "</strong></p><p>Applications " & _ 
                          "are available from the menu on the right side."
    Else
        lblWelcome.Text = "<p>Login or Create a user account to " & _ 
                          "access Intranet applications.</p><p>" & _ 
                          "Quick Links on this page are available " & _ 
                          "to unregistered and registered users."
    End If
End Sub

Protected Sub SaveProfile_Click(ByVal sender As Object, _
          ByVal e As System.EventArgs) Handles SaveProfile.Click
         'Get Profile of current user
    If User.Identity.IsAuthenticated Then
        Profile.GetProfile(User.Identity.Name)

        'Populate some Profile properties
        Profile.FirstName = "My FirstName"
        Profile.LastName = "My LastName"
    End If
     
End Sub

历史

  • 2006 年 9 月 13 日 - 更新了源代码和文章信息
  • 2006 年 7 月 10 日 - 更新了一些拼写错误和错误
© . All rights reserved.