2009-08-12 4 views
0

Ich versuche herauszufinden, ob es möglich ist, die SqlProfileProvider (aspnetdb) zum Speichern bestimmter Profilinformationen für Benutzer verwenden, die von Windows integrierte Authentifizierung an einer SharePoint 2007-Website authentifiziert werden. Das Ziel ist die Entwicklung von ASP.NET-Code, der für jeden Benutzer einige Personalisierungszeichenfolgen speichert und in einer ASP.NET- oder SharePoint-Site ausgeführt wird. Ich hatte gehofft, ich könnte den SqlProfileProvider verwenden und dann wäre es in ASP.NET oder SharePoint verfügbar, vorausgesetzt, ich habe den richtigen Provider zu web.config hinzugefügt.SharePoint 2007: Verwenden Sie SqlProfileProvider mit Windows Integrated Authentication?

Hier ist, was ich in web.config in der Sharepoint-Web-Anwendung haben, aber in meinem ASPX Code-Behind Context.Profile ist immer null:

<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> 

(Beachten Sie, dass aspnetdb ist eine gültige Verbindungszeichenfolge an anderer Stelle in der web.config).

jemand Erfahrung mit den aspnetdb Profil-Provider in Verbindung mit dem Windows-Authentifizierung Einhaken oder nicht, dass nur funktionieren, wenn Formulare/Mitgliedschaft Authentifizierung aktiv ist? Weitere Vorschläge, wie die Benutzereinstellungen in ASP.NET/SharePoint beibehalten werden können, ohne dass Cookies verwendet werden müssen oder ein Datenmodell geschrieben und die Ebene neu erstellt werden muss

+1

Wollen Sie nur persönliche Einstellungen für eine Web-Teil zu speichern, oder haben Sie sie für eine ganze Website/Web speichern? – AdamBT

+1

Interessant, wenn das funktioniert. Mein Bauchgefühl ist, dass es einen Teil von SharePoint vermasseln wird, aber einen Versuch wert ist. –

+0

@AdamBT - Ich möchte Profilwerte auf einer Benutzerbasis mit einem Bereich der gesamten Website speichern, oder wie SharePoint es die SiteCollection nennen möchte. – Mike

Antwort

0

Nach vieler Recherche und Prototyping konnte ich für diesen dank this MSDN Forum post über die Lösung stolpern. Sharepoint entfernt das ASP.NET-Profilmodul, so müssen Sie es um die Web.config hinzufügen zurück Httpmodules Abschnitt:

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

Es gibt auch einige Abhilfen erforderlich, um das Profil Attribute in web.config definiert zugreifen, so dass Sie Erhalte keine Kompilierungsfehler. Sie können entweder einen benutzerdefinierten Provider als described in Becky's post for forms-based authentication oder Anrufe tätigen zu Profile.GetPropertyValue und Profile.SetPropertyValue entwickeln zu erhalten und die Profilwerte für den aktuellen Benutzer festgelegt.

1

Nun sollte es möglich sein, nach this Artikel:

Da Profile in einem benutzerspezifischen Datensatz gespeichert sind, benötigen Sie den aktuellen Benutzer zu authentifizieren, bevor Sie Profilinformationen lesen oder schreiben können. Sie können jede Art von Authentifizierungssystem verwenden, einschließlich Windows-basierte Authentifizierung und formularbasierte Authentifizierung. Das Profilsystem kümmert sich nicht darum-it speichert einfach die benutzerspezifischen Informationen in einem Datensatz, der auf der Benutzer-ID basiert identifiziert wird. Da jedes Authentifizierungssystem Benutzer eindeutig anhand der Benutzer-ID identifiziert, funktioniert jedes Authentifizierungssystem.

Aber ich habe es noch nie zuvor versucht.

Auch fand ich diesen Beitrag hier auf SO, die mehr ins Detail geht:

SO Post

+0

Danke, das ist es auch, was ich denke, ist, dass es funktionieren sollte. Ich hatte die SO-Post bei der Einrichtung meiner Web.config referenziert, aber SharePoint scheint sie sogar nach einigen Iis-Wiederholungen vollständig zu ignorieren. – Mike

Verwandte Themen