代码之家  ›  专栏  ›  技术社区  ›  Mike

SharePoint2007:是否将SQLProfileProvider与Windows集成身份验证一起使用?

  •  0
  • Mike  · 技术社区  · 15 年前

    我想知道是否可以使用 SQLProfileProvider(AspNetDB) 用于存储通过Windows集成身份验证对SharePoint2007网站进行身份验证的用户的某些配置文件信息。目标是能够开发ASP.NET代码,该代码为每个用户存储几个个性化字符串,并将在ASP.NET或SharePoint网站中运行。我希望我可以使用sqlprofileprovider,然后它将在ASP.NET或SharePoint中可用,前提是我将正确的提供程序添加到 Web.CONFIG .

    以下是我在SharePointWeb应用程序的web.config中所拥有的,但是在后面的ASPX代码中。 上下文 总是空的:

    <profile automaticSaveEnabled="true" defaultProvider="AspNetSqlProfileProvider">
    <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" 
             connectionStringName="aspnetdb" 
             applicationName="simple_test" 
             type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </providers>
    <properties>
        <add name="TestName" type="System.String" allowAnonymous="false"/>
    </properties>
    

    (请注意,aspnetdb是web.config中其他地方的有效连接字符串)。

    任何人都有将ASPNETDB配置文件提供程序与Windows身份验证结合使用的经验,或者只有在窗体/成员身份验证有效时才有效吗?关于如何将用户设置持久化到ASP.NET/SharePoint中而不必使用cookie或从头开始编写数据模型和访问层的任何其他建议?

    2 回复  |  直到 13 年前
        1
  •  1
  •   Community basarat    7 年前

    嗯,这应该是可能的,根据 this 文章:

    因为配置文件存储在特定于用户的记录中,所以您需要先对当前用户进行身份验证,然后才能读取或写入配置文件信息。 您可以使用任何类型的身份验证系统,包括基于Windows的身份验证和基于窗体的身份验证。配置文件系统不关心“它只存储用户特定的信息 在根据用户ID标识的记录中,由于每个身份验证系统都根据用户ID唯一地标识用户,所以任何身份验证系统都可以工作。

    但我以前从未尝试过。

    另外,我在这里找到了这篇文章,更详细地说:

    SO Post

        2
  •  0
  •   Mike    13 年前

    经过更多的搜索和原型设计,我终于找到了解决方案,这要归功于 this MSDN Forum post .SharePoint删除了ASP.NET配置文件模块,因此必须将其重新添加到web.config httpmodules部分:

    <add name="Profile" type="System.Web.Profile.ProfileModule" />  
    

    还需要一些解决方法来访问web.config中定义的配置文件属性,这样就不会出现编译时错误。您可以将自定义提供程序开发为 described in Becky's post for forms-based authentication 或者打电话给 Profile.GetPropertyValue Profile.SetPropertyValue 获取和设置当前用户的配置文件值。