SearchableSqlProfileProvider - 可搜索的SQL配置文件提供程序





5.00/5 (2投票s)
Microsoft SqlProfileProvider 的扩展,提供搜索界面。本文基于 Shawn Wildermuth 的工作 - "a.k.a. ADO Guy"。
引言
ASP.NET 2.0 提供了一个配置文件系统,网站可以在其中存储用户特定信息,但是此配置文件系统没有提供网站可以通过这些配置文件搜索具有特定配置文件条件的用户的方法。幸运的是,ASP.NET 2.0 配置文件功能构建在所谓的“Provider Model”之上,该模型允许自定义配置文件系统的内部工作方式以适应自定义网站的需求,这正是我们将在本文中探讨的内容。
背景
本文基于 Shawn Wildermuth 的 "ADOGuy" 代码,标题为“创建自定义 ASP.NET 2.0 配置文件提供程序”。在那里,他解释了什么是配置文件功能,如何使用它,什么是“配置文件提供程序”,以及它对 Web 开发人员的用处。此外,在他的文章中,他还提供了一个具有绝妙创意的自定义配置文件提供程序的示例。我所做的只是在他工作的基础上进行构建。我改进了他的提供程序,对其进行了更多定制,进行了更多测试,并修复了其中的一些错误。这是他文章的链接: Shawn Wildermuth 的创建自定义 ASP.NET 2.0 配置文件提供程序。我不会再重新解释他所要解释的一切。我将只解释如何使用自定义配置文件提供程序。此外,提供程序的代码有大量的注释,所以非常欢迎大家查看,欢迎所有问题。
Using the Code
使用代码非常简单;您只需将名为“SearchableSqlProfileProvider.cs”的文件放入项目的“App_Code”文件夹中。 此外,您还需要修改“web.config”文件以告知系统您将使用自定义配置文件提供程序,并定义配置文件属性,如下所示
<profile enabled="true" defaultProvider="mySearchableSqlProfileProvider">
<providers>
<clear/>
<add name="mySearchableSqlProfileProvider"
type="SearchableSqlProfileProvider"
connectionStringName="myDbConnection"/>
</providers>
<properties>
<add name="Title" type="System.Int32" defaultValue="0" />
<add name="Name" type="System.String" defaultValue="" />
<add name="Gender" type="System.Int32"
defaultValue="0" allowAnonymous="true"/>
</properties>
</profile>
在此“web.config”文件中,我们定义了我们将使用名为“mySearchableSqlProfileProvider
”的配置文件提供程序,其类型为“SearchableSqlProfileProvider
”,数据库在“web.config”文件的“<connectionStrings>
”部分中通过条目“myDbConnection
”定义。 我们还添加了三个配置文件属性,名称分别为 Title
、Name
、Gender
;当然,您可以根据需要更改它们。
这里缺少的一件事是配置文件提供程序将与之配合使用的数据库! 您将在 SearchableSqlProfileProvider.zip 文件中找到一个脚本,您可以使用该脚本构建一个名为“users”的数据库,并通过在“web.config”文件的“<connectionStrings>
”部分中的条目“myDbConnection
”中提供有效的连接来使用它。 该脚本已通过 Microsoft SQL Server 2005 测试,并且运行良好。 顺便说一句,演示应用程序有一个由同一脚本生成的数据库文件。
完成这些步骤后,您现在可以像使用默认配置文件提供程序一样使用它,就这么简单!
演示应用程序
要使用配置文件提供程序的搜索方法,只需执行以下操作
ProfileInfoCollection pic = new ProfileInfoCollection();
pic = ((SearchableSqlProfileProvider)ProfileCommon.Properties[
"PropertyName"].Provider).FindProfilesByPropertyValue(
ProfileCommon.Properties["PropertyName"],
SearchableSqlProfileProvider.SearchOperator.Equal,
"Search Criteria");
我们在这里实例化一个 ProfileInfoCollection
以接收搜索方法“FindProfilesByPropertyValue
”的返回值,该方法采用三个参数:第一个是要搜索的配置文件属性,第二个是稍后将讨论的搜索运算符,最后一个是搜索条件。
搜索运算符
搜索运算符定义如下
public enum SearchOperator
{
Equal = 0,
NotEqual = 1,
Like = 2,
NotLike = 3,
LessThan = 4,
LessThanOEqual = 5,
GreaterThan = 6,
GreaterThanOrEqual = 7,
Contains = 8,
FreeText = 9
}
最后
演示应用程序 SearchableSqlProfileProvider_Demo.zip 将向您展示一切,下载并运行它以查看代码的实际效果。