Nicolas Humann

Aller au contenu | Aller au menu | Aller à la recherche

mardi octobre 2008

Accès anonyme et les pages Forms / viewlsts.aspx...

De plus en plus de site internet sont réalisés avec MOSS 2007. Pour les rendre accessibles à tous, il est nécessaire d’activer l’accès anonyme.

Malheureusement, les pages "/_layouts/viewlsts.aspx" et les pages ".../Forms/AllItems.aspx" restent visible pour tout le monde! Ce qui n'est pas vraiment...

Il existe une solution, les lecteurs réguliers du blog de la team ECM la connaissent peut êtres, il suffit d’activer la feature "cachée" ViewFormPagesLockdown.

stsadm.exe –o activatefeature –url <site collection url> -filename ViewFormPagesLockdown\feature.xml

La feature interdit l’accès a ces pages et demandes-en contre partis une authentification...

Ce blog http://blogs.msdn.com/nay/pages/moss-based-internet-sites-live.aspx regroupe un certain nombre de site basé sur MOSS. J’ai donc essayé quelques urls :)

Certains sites fonctionnent, d’autres non (http://www.wise-woman.net/_layouts/viewlsts.aspx).

 

Bon verrouillage

 

le tips sur le blog de la team ECM.

jeudi août 2008

[MOSS Tip Of The Day] Comment conna&icirc;tre le mode de notre page de publication

Si vous faite des pages de publication, dans le code behind, la page hérite de Microsoft.SharePoint.Publishing.PublishingLayoutPage.

Mais comment faire pour afficher/cacher des éléments si la page est en mode édition ou non. Par réflexe, j' ai recherché une propriété dans la classe PublishingLayoutPage, mais rien...

La solution se trouve dans le SPContext courant.

 

if (SPContext.Current.FormContext.FormMode == SPControlMode.Edit) { // Mon code }

mardi août 2008

[MOSS Tip Of The Day] Ajouter une page de publication &agrave; une biblioth&egrave;que de pages par code

Ça fait quelques temps que je n' avais plus rien posté... Pour me rattraper (un peu) voici un petit bout de code c# qui permet d' ajouter une page de layout dans une bibliothèque de pages.

 

using (SPSite site = new SPSite("http://intranet")) { using (SPWeb web = site.OpenWeb()) { PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web); PublishingSite pubSite = new PublishingSite(site); // Récuperation de toutes les pages de layout PageLayoutCollection plc = pubSite.GetPageLayouts(true); // On prend la premiere... PageLayout pageLayout = plc[0]; PublishingPage pubPage = pubWeb.GetPublishingPages().Add("pages/mapages.aspx", pageLayout); pubPage.Update(); } }

mercredi avril 2008

SharePoint 2007 : Feature Stapling

L’un des nouveaux concepts de la plateforme WSS 3, sont les features. Une feature permet de packager des fonctionnalités, qu’il est possible d’activer ou de désactiver, que soit soit au niveau du site, de la collection de site, de la web application…

Une feature peut être composée de :

  • List templates
  • Menu Items
  • Workflows
  • Web Parts
  • ...

Pour plus d’info : http://msdn2.microsoft.com/en-us/library/ms460318.aspx

Lors de la création d’un nouveau site, par exemple pour un site d’équipe, vos features seront désactivées.

Pour résoudre ce problème, il existe le feature stapling, et ce sans modifier les fichiers des définitions de site !

Il faut créer une feature, au niveau de la ferme, qui va  « stapler » une autre feature.

Feature.xml

<?xml version="1.0" encoding="utf-8" ?> <Feature Id="4b112d30-1147-11dd-bd0b-0800200c9a66" Title="$Resources:Title" Description="$Resources: Description" Version="1.0.0.0" Scope="Farm" xmlns="http://schemas.microsoft.com/sharepoint/" DefaultResourceFile="_Res"> <ElementManifests> <ElementManifest Location="Staple.xml"/> </ElementManifests> </Feature>

Staple.xml

 

<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <FeatureSiteTemplateAssociation Id="d53a7070-1147-11dd-bd0b-0800200c9a66" TemplateName="STS#0" /> <FeatureSiteTemplateAssociation Id="d53a7070-1147-11dd-bd0b-0800200c9a66" TemplateName="STS#1" /> <FeatureSiteTemplateAssociation Id="d53a7070-1147-11dd-bd0b-0800200c9a66" TemplateName="BDR#0" /> <FeatureSiteTemplateAssociation Id="d53a7070-1147-11dd-bd0b-0800200c9a66" TemplateName="SPS#0" /> </Elements>

Puis, la feature d53a7070-1147-11dd-bd0b-0800200c9a66 sera attachée à ces définitions de site.

Ceci est très puissant car il vous permet d' ajouter des fonctionnalités aux définitions site existantes sans avoir à modifier les définitions elles-mêmes.

lundi avril 2008

Microsoft Success Stories

Microsoft vient de lancer le site Microsoft Success Stories. Ce site regroupe des témoignages sur les solutions, POC MS qui ont eu du succès :)

Le site est fait en silverlight avec plein de vidéos de partout !!!

 

Bon visionnage

mardi avril 2008

MSDN &amp; TechNet Tour 2008

A l' occasion du lancement de Microsoft Visual Studio 2008, Windows Server 2008 et SQL Server 2008, Microsoft organise du 10 avril au 12 juin MSDN & TechNet Tour 2008.

A Lille, Nantes, Lyon, Toulouse, Marseille : ce rendez-vous incontournable des IT professionnels, vous permettra de faire le point sur les dernières technologies Microsoft.

Construisez dès maintenant votre agenda à partir de plus de 20 sessions.

Vous pourrez me retrouver le 29 Mai à Marseille lors de ma session sur "Présentation générale des technologies SharePoint: Microsoft Office SharePoint 2007, Windows SharePoint Services 3.0 et Microsoft Search server 2008"

jeudi février 2008

[MOSS Tip Of The Day] Renseigner le control PeopleEditor

Cette astuce complète la dernière que j' ai publié sur le control PeopleEditor. Voici comment renseigner le contenu du PeopleEditor avec une personne:

 

PickerEntity entity = new PickerEntity(); entity.Key = @"domaine\login"; ArrayList arL = new System.Collections.ArrayList(); arL.Add(entity); PeopleEditor1.UpdateEntities(arL);

jeudi janvier 2008

[MOSS Tip Of The Day] Ecrire dans les logs SharePoint

Dans vos développement SharePoint (WebPart, EventHandler...), il est bien normal de vouloir écrire dans les fichiers de Log SharePoint.

Pour cela, il y a une jolie petit méthode:

Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Mon Message");

D' autre méthodes sont disponibles dans Microsoft.Office.Server.Diagnostics.PortalLog

[MOSS Tip Of The Day] Ecrire dans les logs SharePoint

Dans vos développement SharePoint (WebPart, EventHandler...), il est bien normal de vouloir écrire dans les fichiers de Log SharePoint.

Pour cela, il y a une jolie petit méthode:

Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Mon Message");

D' autre méthodes sont disponibles dans Microsoft.Office.Server.Diagnostics.PortalLog

lundi janvier 2008

[MOSS Tip Of The Day] Comment utiliser le control PeopleEditor

Le control PeopleEditor est un control asp.net qui permet de sélectionner un utilisateur de SharePoint. Si vous souhaitez le mettre dans une page custom, voici comment...

Il faut enregistrer la dll Microsoft.SharePoint dans votre page pour pouvoir profiter de ces controls.

<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

Ensuite, ajouter le control PeopleEditor...

<SharePoint:PeopleEditor AllowEmpty="false" SingleLine="true" ValidatorEnabled="true" MultiSelect="false" id="PeopleEditor1" runat="server" SelectionSet="User" />

Puis pour récupérer les valeurs dans le code behind...

if (PeopleEditor1.ResolvedEntities.Count == 0) return; PickerEntity entity = (PickerEntity)PeopleEditor1.ResolvedEntities[0]; string email = string.Empty; if (entity.EntityData.ContainsKey("Email") == true) email = entity.EntityData["Email"].ToString();

 

Il est possible d' avoir comme propriété sur l'EntityData:

  1. AccountName
  2. DisplayName
  3. Title
  4. Department
  5. Email
  6. SPUserID
  7. SPGroupID
  8. SIPAddress
  9. PrincipalType

 

Puis pour finir, si vous souhaitez avoir le SPUser corresspondant...

SPSecurity.RunWithElevatedPrivileges(delegate() { SPWeb web = SPControl.GetContextWeb(this.Context); SPUser usr = null; try { usr = web.SiteUsers[entity.Key]; } catch { return; } if (usr == null) return; });

 

Voila, bon code SP :)

1 2 3 4 5 6 7 8 >