2009-08-12 49 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