zoukankan      html  css  js  c++  java
  • SqlMembershipProvider的配置

    3.2  ASP.NET 2.0附带的提供程序

    ASP.NET 2.0附带的几个特性实现并利用了提供程序模型的概念。大多数特性都实现了在数据库中提取和存储数据的功能。例如,MembershipProvider类建立了用于管理用户的契约。与其他几个提供程序一样,ASP.NET 2.0附带的控件使用在应用程序中配置的MembershipProvider。这些控件能工作的原因是,它们可以依赖已配置的提供程序,执行在MembershipProvider上定义的一组固定方法。

    与ProviderBase一样,MembershipProvider类也是一个抽象类,仅为成员管理提供了契约或方法/属性定义。为了使它可用,ASP.NET小组提供了SqlMembershipProvider,它继承自MembershipProvider,提供了MembershipProvider契约的具体实现方式。在下面的例子中,ASP.NET使用web.config或machine.config中的配置信息,确定哪个MembershipProvider是激活的,以标识和加载相应的提供程序。如果查看machine.config文件,搜索membership,就会找到MembershipProvider的默认配置。下面的示例是MemberShipProvider的machine.config文件的默认内容:

    <system.web>

     <membership>

      <providers>

            <add name="AspNetSqlMembershipProvider"

    type="System.Web.Security.SqlMembershipProvider, System.Web,

    Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

    connectionStringName="LocalSqlServer" enablePasswordRetrieval="false"

    enablePasswordReset="true" requiresQuestionAndAnswer="true"

    applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed"

    maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7"

    minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10"

    passwordStrengthRegularExpression="" />

      </providers>

     </membership>

    </system.web>

    这个配置项告诉ASP.NET有一个 SqlMembershipProvider类,并把各种设置传送给提供程序,以控制提供程序的操作方式。该例子的目的不是研究传送给提供程序的各个参数,而是揭密成员提供程序如何使用默认的安装。这些参数都可以在应用程序的本地web.config文件中修改,MSDN文档提供了其可能设置的详细信息。本章的后面将讨论在建立自己的提供程序时,如何访问这些设置。

    在其他内置提供程序模型的machine.config文件中,也有类似的配置项,它们由ASP.NET中的特性支持。

    表3-2列出了ASP.NET的内置提供程序模型的特性及其实现方式。

    表  3-2

    提供程序的类型

    说    明

    Membership

    管理用户,在System.Web.Security命名空间中有两个提供程序:SqlMembershipProvider和ActiveDirectoryMembershipProvider

    Role

    管理与用户相关的角色,在System.Web.Security命名空间中有三个内置的提供程序: AuthorizationStoreRoleProvider、SqlRoleProvider和WindowsTokenRoleProvider

    Site Map

    用于填充站点地图控件,只有一个内置的提供程序:System.Web. XmlSiteMapProvider

    Session State

    可以管理站点用户的会话状态—— 提供程序匹配和提供的功能类似于ASP.NET 1.1。但是,现在用户可以扩展它,或用自己的会话状态提供程序来替代它。会话状态提供程序位于System.Web.SessionState命名空间中,InProcSessionStateStore、OutOfProcSessionStateStore和SqlSessionStateStore实现了会话状态提供程序

    Profile

    System.Web.Profile.SqlProfileProvider 提供了一种SQL Server实现方式,来存储用户配置项。将来的配置提供程序可以把正常的数据库表映射为配置项

    Web Event

    Web事件提供程序可以扩展或发布Web事件,它位于System.Web. Management命名空间。下面是内置的提供程序: EventLogWebEventProvider、SimpleMailWebEventProvider、TemplateMailWebEventProvider、SqlWebEventProvider、TraceWebEventProvider和WmiWebEventProvider

    Web Part
    Personalization

    为Web part保存位置和其他个性化选项,Web part位于System.Web. UI.WebControls.WebParts命名空间,SqlPersonalizationProvider是其唯一的内置提供程序

    Protected Configuration

    在应用程序配置文件中提供各个配置段的保护,有两个内置的提供程序: DPAPIProtectedConfigurationProvider和RSAProtectedConfigurationProvider

    在开始讨论如何建立自己的提供程序,扩展内置的提供程序之前,先考虑一个比较常见的问题:如何让应用程序不使用本地的SQLExpress实例?在前面的MembershipProvider配置示例中,连接字符串LocalSqlServer有一项。快速扫描machine.config文件,也可以看到其定义,如下所示:

    <connectionStrings>

        <add name="LocalSqlServer" connectionString="data

    source=.\SQLEXPRESS;Integrated
               Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User

    Instance=true"

               providerName="System.Data.SqlClient" />

     </connectionStrings>

    注意,这会影响ASP.NET附带的提供程序的所有SQL Server实现方式,所以改变它,会改变使用SQL Server版本的所有提供程序,除非修改它们的配置段,指定另一个connectionStringName。

    如果要指定另一个SQL Server实例,只需清除现有的连接,或删除它,再添加自己的连接,如下所示:

    <connectionStrings>

        <clear/>

        <add name="LocalSqlServer" connectionString="Data

    Source=ctcdev2;Initial Catalog=MyDB;Integrated Security=True”

    providerName="System.Data.SqlClient" />

    </connectionStrings>

    要完成的另一个工作是对已有的数据库使用内置的提供程序。在.NET Framework 2.0的安装目录中有一个实用程序aspnet_regsql.exe,它会建立必要的数据库表和存储过程,来支持所有提供程序的内置SQL版本。

  • 相关阅读:
    学生党可以申请的免费学习资源
    ms16-032漏洞复现过程
    宽字节注入浅浅谈!
    access数据库之cookie注入
    web渗透学习方向
    最简单的注入
    snapde的批量数据运算公式
    snapde的批量文件数据过滤保存功能
    五、Snapman多人协作电子表格之——Python脚本
    超大文本文件浏览器Snaptext,支持不限制大小的文本文件浏览
  • 原文地址:https://www.cnblogs.com/shangfc/p/1067666.html
Copyright © 2011-2022 走看看