文档首页
MySQL Connector/NET 开发人员指南
相关文档 下载本手册
PDF (US Ltr) - 1.3Mb
PDF (A4) - 1.3Mb


MySQL Connector/NET 开发人员指南  /  ...  /  教程:简单成员资格 Web 提供程序

6.2.4 教程:简单成员资格 Web 提供程序

本节介绍在 MVC 4 模板上使用简单成员资格提供程序的功能。配置 OAuth 与应用程序兼容,以便使用来自 Google、Facebook、Twitter 或其他第三方提供程序的外部凭据登录应用程序。

本教程将创建一个使用简单成员资格提供程序的应用程序,然后添加第三方 (Google) OAuth 身份验证支持。

注意

此功能在 MySQL Connector/NET 6.9.0 中添加。

要求

  • Connector/NET 6.9.x 或更高版本

  • .NET Framework 4.0 或更高版本

  • Visual Studio 2012 或更高版本

  • MVC 4

创建和配置新项目

要开始使用新项目,请执行以下操作

  1. 打开 Visual Studio,创建一个新的 ASP.NET MVC 4 Web 应用程序 类型的项目,并将项目配置为使用 .NET Framework 4.5。下图显示了带有选定项目的“新建项目”窗口的示例。

    图 6.6 简单成员资格:新建项目

    Content is described in the surrounding text.

  2. 选择您喜欢的模板和视图引擎。本教程使用 Internet 应用程序模板,并使用 Razor 视图引擎(见下图)。或者,您可以通过选择 创建单元测试项目 来添加单元测试项目。

    图 6.7 简单成员资格:选择模板和引擎

    Content is described in the surrounding text.

  3. 添加对 MySql.DataMySql.Data.EntitiesMySql.Web 程序集的引用。所选程序集必须与模板添加到项目中的 .NET Framework 和 Entity Framework 版本匹配。

  4. 将有效的 MySQL 连接字符串添加到 web.config 文件中,类似于以下示例。

    <add
      name="MyConnection"
      connectionString="server=localhost;
                        UserId=root;
                        password=pass;
                        database=MySqlSimpleMembership;
                        logging=true;port=3305"
      providerName="MySql.Data.MySqlClient"/>
  5. <system.data> 节点下,添加类似于以下示例的配置信息。

    <membership defaultProvider="MySqlSimpleMembershipProvider">
    <providers>
    <clear/>
    <add
      name="MySqlSimpleMembershipProvider"
      type="MySql.Web.Security.MySqlSimpleMembershipProvider,MySql.Web,
            Version=6.9.2.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d"
      applicationName="MySqlSimpleMembershipTest"
      description="MySQLdefaultapplication"
      connectionStringName="MyConnection"
      userTableName="MyUserTable"
      userIdColumn="MyUserIdColumn"
      userNameColumn="MyUserNameColumn"
      autoGenerateTables="True"/>
    </providers>
    </membership>
  6. 使用以下属性的有效值更新配置:connectionStringNameuserTableNameuserIdColumnuserNameColumnautoGenerateTables

    • userTableName:用于存储用户信息的表的名称。此表独立于提供程序生成的架构,可以在将来更改。

    • userId:用于存储 userTableName 中记录的 ID 的列的名称。

    • userName:用于存储 userTableName 中记录的名称/用户的列的名称。

    • connectionStringName:此属性必须与在 web.config 文件中定义的连接字符串匹配。

    • autoGenerateTables:如果用于处理凭据的表已存在,则必须将其设置为 false

  7. 使用配置的连接字符串名称更新您的 DBContext 类。

  8. Filters/ 文件夹打开 InitializeSimpleMembershipAttribute.cs 文件,找到 SimpleMembershipInitializer 类。然后找到 WebSecurity.InitializeDatabaseConnection 方法调用,并使用 connectionStringNameuserTableNameuserIdColumnuserNameColumn 的配置更新参数。

  9. 如果连接字符串中配置的数据库不存在,则创建它。

  10. 运行 Web 应用程序后,成功后将显示生成的首页(见下图)。

    图 6.8 简单成员资格:生成的首页

    Content is described in the surrounding text.

  11. 如果应用程序成功执行,则生成的架构将类似于以下图所示的打开到表的对象浏览器。

    图 6.9 简单成员资格:生成的架构和表

    Content is described in the surrounding text.

  12. 要创建用户登录,请在生成的网页上点击 注册。输入用户名和密码,然后执行注册表单。此操作会将您重定向到已登录新创建用户的首页。

    新创建用户的數據可以位于 UserProfileWebpages_Membership 表中。

将 OAuth 身份验证添加到项目

OAuth 是使用简单成员资格提供程序的网站的另一种身份验证选项。可以使用 Facebook、Twitter、Google 等外部帐户验证用户。

使用以下步骤在应用程序中启用使用 Google 帐户进行身份验证

  1. App_Start 文件夹中找到 AuthConfig.cs 文件。

  2. 由于本教程使用 Google,因此找到 RegisterAuth 方法,并取消注释调用 OauthWebSecurity.RegisterGoogleClient 的最后一行。

  3. 运行应用程序。当应用程序运行时,点击 登录 打开登录页面。然后,点击 Google,位于 使用其他服务登录 下(见下图)。

    图 6.10 带有 OAuth 的简单成员资格:Google 服务

    Content is described in the surrounding text.

  4. 此操作将重定向到 Google 登录页面(在 google.com 上),并要求您使用您的 Google 帐户信息登录。

  5. 提交正确的凭据后,一条消息将请求您的应用程序访问用户信息的权限。阅读说明,然后点击 接受 允许引用的操作,并将您重定向回应用程序的登录页面。

  6. 应用程序现在可以注册帐户。 用户名 字段将填充相应的信息(在本例中,是与 Google 帐户关联的电子邮件地址)。点击 注册 使用您的应用程序注册用户。

    现在,新用户已使用 OAuth 从外部来源登录应用程序。有关新用户的信息存储在 UserProfileWebpages_OauthMembership 表中。

要使用其他外部选项对用户进行身份验证,您必须在启用 Google 提供程序的同一类中启用客户端。通常,提供程序要求您在允许 OAuth 身份验证之前注册您的应用程序,并且注册后,他们通常会提供一个令牌/密钥和一个在应用程序中注册提供程序时必须使用的 ID。