数据库控件dotConnect for Oracle高级功能使用教程(一):ASP.NET 提供程序模型支持

dotConnect for Oracle 可用于 ASP.NET 提供程序模型,它允许开发人员编写更好的结构化应用程序,并轻松地将 ASP.NET 应用程序中的数据存储从其他媒体(如 Microsoft SQL Server)切换。本文主要介绍如何设置 ASP.NET 应用程序以使用 dotConnect for Oracle 。

安装和设置

所有提供程序都包含在 Devart.Data.Oracle.Web.dll 程序集中。您应该在项目中添加对此程序集的引用,以便使用 ASP.NET 提供程序模型,提供程序正常运行的另一个条件是存在某些数据库对象。在使用 ASP.NET 提供程序之前,您应该 针对您希望使用的数据库运行InstallWebTables.sql脚本,可以在Program FilesDevartdotConnectOracle文件夹中找到该脚本。

在安装过程中,dotConnect for Oracle 将新条目添加到machine.config 文件中。当设置未被本地 Web.config 文件覆盖时,它们由网站使用。您可以选择将设置保留在 machine.config 中,在这种情况下,它们将用于所有网站,或者保留在 Web.config 文件中,您可以在其中设置特定参数。请注意,machine.config 文件中的默认连接字符串不正确,需要调整或覆盖它。

在 Web.config 文件中重新定义标识符时,必须在相应部分添加remove 关键字,如下所示:

<remove name="OracleServices" /><add name="OracleServices" connectionString="User Id=Scott;Password=tiger;DataSource=Ora" /> 

此示例演示如何调整连接字符串参数。默认情况下,dotConnect for Oracle 创建一个名为OracleServices的存根连接字符串。

您还可以使用标准控制面板小程序“ASP.NET 配置设置”来配置您的网站。要打开它,请导航到控制面板 | 管理工具 | Internet Information Services,然后选择站点或虚拟目录,打开其属性,切换到ASP.NET,然后单击Edit Configuration。此对话框提供对各种站点设置的控制,包括连接字符串。

ASP.NET 成员资格提供程序

会员提供者的基本工作是与包含有关站点注册用户的数据的数据源进行交互,并提供创建用户、删除用户、验证登录凭据、更改密码等的方法。.NET Framework 的 System.Web.Security 命名空间包括一个名为 MembershipUser 的类,它定义了成员资格用户的基本属性,并且成员资格提供程序使用它来表示单个用户。

要访问此功能,请使用 Devart.Data.Oracle.Web.Providers.OracleMembershipProvider 类。它的行为类似于 System.Web.Security.RoleProvider 类(您可以在MSDN中阅读它的描述)。以下示例显示了配置为使用 OracleMembershipProvider 的 ASP.NET 应用程序的 Web.config 文件。

<configuration>  <connectionStrings>    <add name="OracleServices"         connectionString="User Id=Scott;Password=tiger;Data Source=Ora" />  </connectionStrings>  <system.web>    ...    <membership defaultProvider="AspNetOracleMembershipProvider"      userIsOnlineTimeWindow="15">      <providers>        <add          name="AspNetOracleMembershipProvider"          type="Devart.Data.Oracle.Web.Providers.OracleMembershipProvider,                Devart.Data.Oracle.Web, Version=7.0.6.0, Culture=neutral,                PublicKeyToken=09af7300eec23701"          connectionStringName="OracleServices"          enablePasswordRetrieval="false"          enablePasswordReset="true"          requiresQuestionAndAnswer="true"          requiresUniqueEmail="false"          passwordFormat="Hashed"          maxInvalidPasswordAttempts="5"          passwordAttemptWindow="10" />      </providers>    </membership>  </system.web></configuration>

注意:将“7.0.6.0”替换为实际的提供程序版本。

ASP.NET 角色提供程序

角色提供者的基本工作是与包含角色数据的数据源接口,将用户映射到角色,并提供创建角色、删除角色、将用户添加到角色等的方法。给定用户名,角色管理器依赖角色提供者来确定用户属于哪个或哪些角色。角色管理器还通过调用提供程序中的底层方法来实现管理方法,例如 Roles.CreateRole 和 Roles.AddUserToRole。

要访问此功能,请使用 Devart.Data.Oracle.Web.Providers.OracleRoleProvider 类。它的行为类似于 System.Web.Security.RoleProvider 类(您可以在MSDN中阅读它的描述)。以下示例显示了配置为使用 OracleRoleProvider 的 ASP.NET 应用程序的 Web.config 文件。请注意,您可以将 OracleRoleProvider 配置为使用与 OracleMembershipProvider 相同的数据库和用户信息,以便将单个数据库用于身份验证和授权信息。

<configuration>  <connectionStrings>    <add name="OracleServices"         connectionString="User Id=Scott;Password=tiger;Data Source=Ora" />  </connectionStrings>  <system.web>    ...    <roleManager defaultProvider="AspNetOracleRoleProvider"      enabled="true"      cacheRolesInCookie="true"      cookieName=".ASPROLES"      cookieTimeout="30"      cookiePath="/"      cookieProtection="All" >      <providers>        <add          name="AspNetOracleRoleProvider"          type="Devart.Data.Oracle.Web.Providers.OracleRoleProvider,                Devart.Data.Oracle.Web, Version=7.0.6.0, Culture=neutral,                PublicKeyToken=09af7300eec23701"          connectionStringName="OracleServices" />      </providers>    </roleManager>  </system.web></configuration>

注意:将“7.0.6.0”替换为实际的提供程序版本。

简单会员

ASP.NET 4.5 和 ASP.NET MVC 4 引入了新的成员 API – SimpleMembership,旨在改进和简化 ASP.NET 中内置安全性的使用。这些 SimpleMembership API 被实现为 SimpleRoleProvider 和 SimpleMembershipProvider 提供程序。作为它们的前辈,它们旨在使用包含有关站点注册用户的数据的数据源以及包含将用户分别映射到角色的角色数据的数据源。

为了支持此操作,dotConnect for Oracle功能可实现 OracleExtendedMembershipProvider 和 OracleExtendedRoleProvider 类,它们的行为与上述标准提供程序类相同。

ASP.NET 配置文件提供程序

配置文件提供程序的基本工作是将 ASP.NET 提供的配置文件属性值写入持久配置文件数据源,并在 ASP.NET 请求时从数据源读回属性值。

与 Session State 提供者不同,Profile 提供者是一个类型化的结构化数据存储。它支持注册用户和匿名用户,配置文件提供者还实现了允许消费者管理配置文件数据源的方法。 例如,删除自指定日期以来未访问过的配置文件。

使用当前 HttpContext 对象的 Profile 属性访问用户配置文件,以下示例显示了配置为使用 OracleProfileProvider 的 ASP.NET 应用程序的 Web.config 文件。

<configuration>  <connectionStrings>    <add name="OracleServices"         connectionString="User Id=Scott;Password=tiger;Data Source=Ora" />  </connectionStrings>  <system.web>    ...    <profile defaultProvider="AspNetOracleProfileProvider" >      <providers>        <add          name="AspNetOracleProfileProvider"          type="Devart.Data.Oracle.Web.Providers.OracleProfileProvider,                Devart.Data.Oracle.Web, Version=7.0.6.0, Culture=neutral,                PublicKeyToken=09af7300eec23701"          connectionStringName="OracleServices" />      </providers>      <properties>        <add name="ZipCode" />        <add name="CityAndState" />      </properties>    </profile>  </system.web></configuration>

注意:将“7.0.6.0”替换为实际的提供程序版本。

ASP.NET 会话状态提供程序

会话状态存储提供程序在处理 ASP.NET 页面期间由 SessionStateModule 类调用,以与数据存储进行通信,以存储和检索会话变量和相关的会话信息,例如超时值。每个 ASP.NET 应用程序中的会话数据为每个 SessionID 属性单独存储,ASP.NET 应用程序不共享会话数据。

以下示例显示了配置为使用 OracleSessionStateStore 的 ASP.NET 应用程序的 Web.config 文件。

<configuration>  <appSettings/>  <connectionStrings>    <add name="OracleServices"         connectionString="User Id=Scott;Password=tiger;Data Source=Ora"/>  </connectionStrings>  <system.web>    <sessionState      cookieless="true"      regenerateExpiredSessionId="true"      mode="Custom"      customProvider="OracleSessionProvider">      <providers>        <add name="OracleSessionProvider"          type="Devart.Data.Oracle.Web.Providers.OracleSessionStateStore,                Devart.Data.Oracle.Web, Version=7.0.6.0, Culture=neutral,                PublicKeyToken=09af7300eec23701"          connectionStringName="OracleSessionServices"          writeExceptionsToEventLog="false"/>      </providers>    </sessionState>  </system.web></configuration>

注意:将“7.0.6.0”替换为实际的提供程序版本。

ASP.NET 站点地图提供程序

ASP.NET 站点地图提供程序提供了 ASP.NET 的数据驱动站点导航功能和站点地图数据源之间的接口。OracleSiteMapProvider 的基本工作是从数据源读取站点地图数据并构建 SiteMapNode 对象的倒置树,并提供从站点地图中检索节点的方法。树中的每个节点代表站点地图中的一个节点。Title、Url 和 ChildNodes 等节点属性定义了每个节点的特征,并允许树在任何方向上导航。

要访问此功能,请使用 Devart.Data.Oracle.Web.Providers.OracleSiteMapProvider 类,它的行为类似于 System.Web.SiteMapProvider 类(您可以在MSDN中阅读它的描述)。以下示例显示了配置为使用 OracleSiteMaProvider 的 ASP.NET 应用程序的 Web.config 文件。

<system.web>  <siteMap defaultProvider="OracleSiteMapProvider">    <providers>      <add name="OracleSiteMapProvider"           type="Devart.Data.Oracle.Web.Providers.OracleSiteMapProvider,                 Devart.Data.Oracle.Web, Version=7.0.6.0, Culture=neutral,                 PublicKeyToken=09AF7300EEC23701"           connectionStringName="ConnectionString"           securityTrimmingEnabled="true"           />    </providers>  </siteMap></system.web>

注意:将“7.0.6.0”替换为实际的提供程序版本。

ASP.NET Web 事件提供程序

Web 事件提供程序在 ASP.NET 的健康监视子系统和记录,或进一步处理由该子系统触发的事件(“Web 事件”)的数据源之间提供接口。

要访问此功能,请使用 Devart.Data.Oracle.Web.Providers.OracleWebEventProvider 类,它的行为类似于 System.Web.Management.WebEventProvider 类(您可以在MSDN中阅读它的描述),以下示例显示了配置为使用 OracleWebEventProvider 的 ASP.NET 应用程序的 Web.config 文件。请注意,正确使用提供程序还需要正确配置 healthMonitoring的许多其他子部分。

<system.web>  <healthMonitoring enabled="true" heartbeatInterval="0">    ...    <providers>      <clear/>      <add name="OracleWebEventProvider"           type="Devart.Data.Oracle.Web.Providers.OracleWebEventProvider,                 Devart.Data.Oracle.Web, Version=7.0.6.0, Culture=neutral,                 PublicKeyToken=09AF7300EEC23701"           connectionStringName="ConnectionString"           maxEventDetailsLength="1073741823"           buffer="false"           bufferMode="Notification" />    </providers>    ...  </healthMonitoring><system.web>

注意:将“7.0.6.0”替换为实际的提供程序版本。

个性化提供商

个性化提供者的基本工作是为有关网页内容和布局的个性化状态提供持久存储。

要访问此功能,请使用 Devart.Data.Oracle.Web.Providers.OraclePersonalizationProvider 类,它的行为类似于 System.Web.UI.WebControls.WebParts.PersonalizationProvider 类(您可以在MSDN中阅读它的描述)。以下示例显示了配置为使用 OraclePersonalizationProvider 的 ASP.NET 应用程序的 Web.config 文件。

<system.web> <webParts>  <personalization defaultProvider="WebPartProvider">   <providers >    <add name="WebPartProvider"         connectionStringName="ConnectionString"         type="Devart.Data.Oracle.Web.Providers.OraclePersonalizationProvider,                     Devart.Data.Oracle.Web, Version=7.0.6.0, Culture=neutral,               PublicKeyToken=09af7300eec23701" />   </providers>  </personalization> </webParts><system.web>

注意:将“7.0.6.0”替换为实际的提供程序版本。

部署

要部署使用 dotConnect for Oracle 编写的 ASP.NET 应用程序,您应该在全局程序集缓存 (GAC) 中注册运行时程序集Devart.Data.dll、Devart.Data.Oracle.dll和 Devart.Data.Oracle.Web.dll,对于适当的框架或将它们放在应用程序的文件夹中(Web 项目的Bin文件夹)。

此外,将App_Licenses.dll程序集放在 Bin 文件夹中。

请记住,Web 应用程序通常在部分受信任的环境中运行。以下是 dotConnect for Oracle 所需的权限:

  • 在Direct模式下:中等信任加上 SocketPermission;
  • 在OCI模式下:中等信任加上 ReflectionPermission、RegistryPermission、用于 PATH 环境变量的 EnvironmentPermission、用于 Oracle 客户端的 FileIOPermission。
  • 以上是关于数据库控件dotConnect for Oracle高级功能使用教程里的ASP.NET 提供程序模型支持的相关内容,进入官网可下载最新版本试用。

    dotConnect for Oracle| 下载试用

    dotConnect for Oracle建立在ADO.NET技术上,为基于Oracle数据库的应用程序提供完整的解决方案。它为设计应用程序结构带来了新的方法,提高工作效率,使数据库应用程序的开发更简便。

    标签:

    来源:慧都

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年1月4日
    下一篇 2022年1月4日

    相关推荐

    发表回复

    登录后才能评论