2009-08-12 47 views
0

我想弄清楚是否有可能使用SqlProfileProvider(aspnetdb)为通过Windows集成身份验证向SharePoint 2007网站进行身份验证的用户存储某些配置文件信息。我们的目标是能够开发ASP.NET代码,为每个用户存储一些个性化字符串,并将在ASP.NET或SharePoint网站中运行。我希望我可以使用SqlProfileProvider,然后它可以在ASP.NET或SharePoint中使用,前提是我向web.config添加了正确的提供程序。SharePoint 2007:使用Windows集成身份验证的SqlProfileProvider?

下面是我在SharePoint Web应用程序的web.config,但是我的ASPX代码隐藏Context.Profile里面总是空:

<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身份验证的经验,或者只有在Forms/membership身份验证有效时才有用?有关如何在ASP.NET/SharePoint中保持用户设置而无需使用Cookie或从头开始编写数据模型和访问层的任何其他建议?

+1

你只是想存储Web部分的个性化设置,或者你想存储他们的整个网站/网络? – AdamBT 2009-08-13 00:35:01

+1

有趣的,如果这个工程。我的直觉是它会搞砸SharePoint的某些部分,但值得一试。 – 2009-08-13 09:02:05

+0

@AdamBT - 我想在每个用户的基础资料值存储与整个Web站点的范围,或包括SharePoint喜欢称它为SiteCollection。 – Mike 2009-08-13 13:13:05

回答

0

了更多的搜索和原型我管理整个解决方案绊倒此感谢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.GetPropertyValueProfile.SetPropertyValue以获取和设置当前用户的配置文件值。

1

那么它应该是可能的,根据this文章:

由于配置文件存储在用户特定的记录,你需要将当前用户进行身份验证,然后才能读取或写入个人信息。 您可以使用任何类型的身份验证系统,包括基于Windows的身份验证和基于表单的身份验证。配置文件系统不关心 - 它只是将用户特定信息存储在基于用户标识标识的记录中。鉴于每个认证系统都通过用户ID唯一标识用户,任何认证系统都能正常工作。

但我从来没有尝试过。

而且,我发现这个职位在这里SO,肚里更细说:

SO Post

+0

谢谢,这就是我所想的,它应该工作。我在设置我的Web.config时引用了SO Post,但即使在几次iisresets之后,SharePoint似乎也完全忽略了它。 – Mike 2009-08-13 13:14:34