我试图弄清楚是否可以使用SqlProfileProvider (aspnetdb)来存储某些用户的配置文件信息,这些信息是通过认证到SharePoint 2007站点的。目标是能够开发ASP.NET代码,为每个用户存储一些个性化字符串,并在ASP.NET或SharePoint站点中运行。我希望我可以使用SqlProfileProvider,如果我向web.config添加了正确的提供程序,那么它将在ASP.NET或SharePoint中可用。
下面是我在Context.Profile web应用程序中使用的web.config中的内容,但是在我的ASPX代码中,在SharePoint后面的SharePoint始终是空的:
<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或编写数据模型和访问层,还有其他建议吗?
发布于 2009-08-16 19:35:02
在进行了更多的搜索和原型设计之后,多亏了这个MSDN论坛帖子,我偶然找到了解决方案。SharePoint移除ASP.NET配置文件模块,因此必须将其添加回Web.config httpModules部分:
<add name="Profile" type="System.Web.Profile.ProfileModule" /> 访问web.config中定义的配置文件属性也需要一些解决办法,这样就不会出现编译时错误。您可以将自定义提供程序开发为在Becky的文章中描述了基于表单的身份验证,也可以调用Profile.GetPropertyValue和Profile.SetPropertyValue来获取和设置当前用户的配置文件值。
发布于 2009-08-13 07:04:49
根据这的文章,这应该是可能的:
因为概要文件存储在特定于用户的记录中,所以在读取或写入配置文件信息之前,需要对当前用户进行身份验证。您可以使用任何类型的身份验证系统,包括基于Windows的身份验证和基于窗体的身份验证.配置文件系统并不在意-它只是将特定于用户的信息存储在一个基于用户ID标识的记录中。由于每个身份验证系统都通过用户ID唯一地标识用户,任何身份验证系统都可以工作。
但我从来没试过。
另外,我在这里找到了这篇文章,更详细地介绍了:
https://stackoverflow.com/questions/1268964
复制相似问题