本部分记录了在 MVC 4 模板上使用简单成员资格提供程序的能力。配置 OAuth 兼容应用程序使用来自第三方提供商(如 Google、Facebook、Twitter 或其他提供商)的外部凭据登录。
本教程使用简单的成员身份提供程序创建一个应用程序,然后添加第三方 (Google) OAuth 身份验证支持。
此功能是在 MySQL Connector/NET 6.9.0 中添加的。
要开始新项目,请执行以下操作:
打开 Visual Studio,新建一个ASP.NET MVC 4 Web Application类型的项目,并将项目配置为使用 .NET Framework 4.5。下图显示了带有所选项目的“新建项目”窗口的示例。
选择您喜欢的模板和视图引擎。本教程使用带有 Razor 视图引擎的Internet 应用程序模板(参见下图)。或者,您可以通过选择创建单元测试项目来添加单元测试项目。
添加对
MySql.Data
、MySql.Data.Entities
和MySql.Web
程序集的引用。选择的程序集必须与通过模板添加到项目中的 .NET Framework 和 Entity Framework 版本相匹配。将有效的 MySQL 连接字符串添加到
web.config
文件中,类似于以下示例。<add name="MyConnection" connectionString="server=localhost; UserId=root; password=pass; database=MySqlSimpleMembership; logging=true;port=3305" providerName="MySql.Data.MySqlClient"/>
在该
<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>
使用以下属性的有效值更新配置:
connectionStringName
、userTableName
、userIdColumn
、userNameColumn
和autoGenerateTables
。userTableName
:存放用户信息的表名。该表独立于提供者生成的模式,将来可以更改。userId
:存储 中记录 ID 的列的名称userTableName
。userName
: 列的名称,用于存储userTableName
.connectionStringName
: 此属性必须与文件中定义的连接字符串相匹配web.config
。autoGenerateTables
false
:如果处理凭据的表已经存在 ,则必须将其设置为 。
DBContext
使用配置的连接字符串名称 更新您的类。InitializeSimpleMembershipAttribute.cs
从文件夹 中打开Filters/
文件并找到SimpleMembershipInitializer
类。然后找到 方法调用并使用、 、 和WebSecurity.InitializeDatabaseConnection
的配置更新参数。connectionStringName
userTableName
userIdColumn
userNameColumn
如果连接字符串中配置的数据库不存在,则创建它。
运行Web应用程序后,成功显示生成的主页(见下图)。
如果应用程序成功执行,则生成的架构将类似于下图,显示了一个打开到表的对象浏览器。
要创建用户登录,请 在生成的网页上单击注册。键入用户名和密码,然后执行注册表。此操作会将您重定向到登录了新创建用户的主页。
新创建用户的数据可以位于
UserProfile
和Webpages_Membership
表中。
OAuth 是使用简单会员提供程序的网站的另一种身份验证选项。可以使用 Facebook、Twitter、Google 等外部帐户验证用户。
使用以下步骤在应用程序中启用使用 Google 帐户的身份验证:
AuthConfig.cs
在文件夹中 找到该App_Start
文件。由于本教程使用谷歌,找到该
RegisterAuth
方法并取消注释它调用的最后一行OauthWebSecurity.RegisterGoogleClient
。运行应用程序。当应用程序运行时,单击 登录以打开登录页面。然后,单击“使用其他服务登录”下的“ Google ” (如下图所示)。
此操作重定向到 Google 登录页面(位于 google.com),并要求您使用您的 Google 帐户信息登录。
提交正确的凭据后,一条消息会请求您的应用程序获得访问用户信息的权限。阅读说明,然后单击 接受以允许引用的操作,并重定向回应用程序的登录页面。
应用程序现在可以注册帐户。用户名字段将 填写适当的信息(在本例中为与 Google 帐户相关联的电子邮件地址)。单击 注册以向您的应用程序注册用户。
现在,新用户使用 OAuth 从外部源登录到应用程序。有关新用户的信息存储在
UserProfile
和Webpages_OauthMembership
表中。
要使用另一个外部选项对用户进行身份验证,您必须在我们在本教程中启用 Google 提供程序的同一类中启用客户端。通常,提供者要求您在允许 OAuth 身份验证之前注册您的应用程序,并且一旦注册,他们通常会提供一个令牌/密钥和一个在应用程序中注册提供者时必须使用的 ID。