2010-03-02 11 views
0

Je travaille sur un site MOSS 2007 public qui utilise la fonction ViewFormPagesLockDown pour empêcher les utilisateurs anonymes d'accéder aux formulaires de liste standard. Je ne veux pas perdre la sécurité supplémentaire que cette fonctionnalité offre, mais il existe quelques listes où les utilisateurs anonymes devraient avoir accès aux formulaires.ViewFormPagesLockDown et excluant des listes/pages spécifiques

Y a-t-il quelque chose que je peux faire dans les paramètres de liste, le modèle de liste ou dans le code de fonctionnalité qui empêchera une liste spécifique ou un formulaire d'exiger SPBasePermissions.ViewFormPages?

Répondre

1

Je n'ai pas réussi à trouver un moyen de contourner le problème. La prise en charge de la fonctionnalité LockDown semble être intégrée dans la classe de formulaire. Au lieu de cela, ce que nous avons fait était de créer une page séparée avec son propre ListFormWebPart. Ce qui suit est une adaptation d'une entrée de notre blog interne où j'ai décrit les étapes pour permettre à un utilisateur anonyme d'ajouter de nouveaux éléments à une liste:

Dans les paramètres de la liste, allez à Paramètres avancés. Assurez-vous que l'accès en lecture est défini sur Tous les éléments. Revenez à la liste Paramètres et sélectionnez Autorisations pour cette liste. Interrompez l'héritage du site en sélectionnant Actions> Modifier les autorisations. Remarque: Si vous voyez une case à cocher à gauche des noms, cette étape a déjà été effectuée. Une fois les autorisations personnalisées définies, sélectionnez Paramètres> Accès anonyme. Cochez Ajouter des éléments, puis cliquez sur OK. Pour terminer l'accès anonyme, revenez à Paramètres> Paramètres avancés et réinitialisez pour sélectionner Seulement leur propre pour l'accès en lecture et l'accès Modifier, puis cliquez sur OK.

Créer une nouvelle page en utilisant Actions du site> Créer une page. Ouvrez le site SharePoint Designer. Faites un clic droit sur la page nouvellement créée et sélectionnez Détacher de la mise en page. Placez le curseur dans une zone de composant WebPart et sélectionnez Insérer> Contrôles SharePoint> Formulaire de liste personnalisée. Sélectionnez la liste appropriée et le formulaire Nouvel élément, puis cliquez sur OK. Dans le volet Code, change DataSourceMode dans le DataFormWebPart nouvellement créé de ListItem à Webs. En laissant le paramètre par défaut de ListItem, les utilisateurs anonymes obtiennent une erreur «Accès refusé - Vous n'avez pas la permission d'effectuer cette action ou d'accéder à cette ressource». Enregistrez et affichez la page dans le navigateur. Pour de meilleurs résultats, utilisez uniquement SharePoint Designer sur un serveur de développement. Pour migrer WebPart vers la production, ouvrez la page sur le serveur de développement dans le navigateur et sélectionnez Exporter dans le menu WebPart. Enregistrez le fichier WebPart. Ouvrez la page sur le serveur de production dans le navigateur et sélectionnez Modifier la page à partir des actions du site. Dans le menu de la barre d'outils de la page, sélectionnez Page> Ajouter des composants WebPart> Importer. Entrez l'emplacement du fichier WebPart enregistré sur le serveur de développement et cliquez sur Télécharger. Ensuite, faites glisser la WebPart importée depuis le volet d'outils à droite dans la zone WebPart souhaitée. Pour enregistrer la page, cliquez sur Publier.

1

Une question plus ancienne mais j'ai pensé que j'ajouterais une autre option que vous pouvez employer pour faire ceci.

Solution: Comme Rich mentionné, cassez l'héritage des autorisations dans la liste. Désactive la fonction ViewFormPagesLockDown.
Définir des utilisateurs anonymes pour avoir accès à la liste. Activez la fonction ViewFormPagesLockDown.

Les utilisateurs anonymes doivent désormais pouvoir accéder aux pages d'application pour la liste uniquement.

Le pourquoi: La fonction ViewFormPagesLockDown supprime les autorisations « Afficher les pages d'application » et « Utiliser les interfaces distantes » du rôle d'autorisation « accès limité ». Toutefois, les utilisateurs anonymes ne prennent pas les modifications à ces rôles jusqu'à ce que basculer l'option d'accès anonyme. Cela fonctionne soit au niveau d'un site ou d'une liste. Ainsi, si vous souhaitez qu'un site Web ou une liste particulier ait un accès anonyme différent aux pages d'application, vous pouvez utiliser la solution ci-dessus pour la modifier.