Je suis en train de migrer un système de gestion de contenu d'entreprise qui a été construit sur Sharepoint 2007 vers Sharepoint 2010. Le système contient un fournisseur d'authentification basé sur des formulaires personnalisés. fournisseur de rôle. mappages rôle d'utilisateur sont stockés dans la base de données comme ci-dessous:Sharepoint 2010 - Comment accéder à l'URL du site demandant l'authentification au fournisseur de rôles personnalisé
utilisateurID RoleId siteURL
21 15 www.sitea.com
21 10 www.siteb.com
22 15 www.sitea.com
Dans le fournisseur de rôle, le rôle auquel le rôle est attribué dans le site actuel est obtenu et défini via l'URL du site. Cela a été résolu en définissant une propriété personnalisée (par exemple, la propriété SiteURL) du fournisseur de rôle dans sa méthode Initilize comme suit:
SiteURL = SPContext.Current.Web.Url;
Cependant, dans Sharepoint 2010, cette ligne ne pouvait plus être utilisée. Parce que dans l'autorisation de revendications Sharepoint 2010, le fournisseur de rôle personnalisé est appelé dans un service Web distinct appelé service Web SecurityToken. Donc SPContext.Current est null.
Maintenant, je dois trouver une autre façon d'obtenir l'URL du site qui demande l'authentification. Souhaitez-vous me donner des suggestions?
Le système sur lequel je travaille est développé pour héberger les sites web de toutes les unités organisationnelles d'un ministère dans mon pays. Toutes ces unités auront leur propre collection de sites sp et le nombre d'unités hébergées sera de plus de 500 dans le temps. Le système a son propre DB d'authentification derrière l'authentification par formulaire. Par exemple. Supposons que je me suis inscrit sur le site A et affecté dans le rôle X pour le site. Je suis également autorisé à me connecter sur les sites restants, mais pas dans le rôle X. Votre solution est une solution, mais je souhaite qu'il y en ait un plus "approprié" car il va créer beaucoup de rôles "SiteA_NewsPoster" etc. – mbulutay