J'ai un contrôle ASCX (les WebParts ne sont pas utilisés dans cette solution) qui interroge les données de CRM 4 via l'API fournie par Microsoft.Crm.Sdk
et Microsoft.Crm.SdkTypeProxy
.Intégration de Dynamics CRM avec Sharepoint ASCX SecurityException Édition
La solution fonctionne jusqu'à ce qu'il soit déployé sur Sharepoint.
Dans un premier temps, j'ai reçu l'erreur suivante:
[SecurityException: That assembly does not allow partially trusted callers.]
MyApp.SharePoint.Web.Applications.MyAppUtilities.RefreshUserFromCrm(String login) +0
MyApp.SharePoint.Web.Applications.MyApp_LoginForm.btnLogin_Click(Object sender, EventArgs e) +30
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
Alors j'ai essayé envelopper le code d'appel dans le ASCX avec SPSecurity.RunWithElevatedPrivileges:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// FBA user may not exist yet or require refreshing
MyAppUtilities.RefreshUserFromCrm(txtUser.Text);
});
Mais cela a donné lieu à l'erreur suivante (I » Je pense que RunWithElevatedPrivileges n'est pas pour ce genre de chose de toute façon, mais quelqu'un l'a suggéré):
[SecurityException: Request for the permission of type 'Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' failed.]
MyApp.SharePoint.Web.Applications.MyApp_LoginForm.btnLogin_Click(Object sender, EventArgs e) +0
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
Lorsque j'élève le niveau de confiance dans le site Sharepoint à plein, tout fonctionne correctement, mais j'ai besoin de trouver une solution qui utilise une confiance minimale (ou une confiance minimale personnalisée). J'essaie aussi de ne rien ajouter au GAC. Des idées?
Je suppose que la question est INTERVENUES lorsque vous essayez d'appeler la fonctionnalité de Microsoft.Crm.*
.
Très étrange ... ce problème est soudainement passé à un problème de sécurité à propos de AspNetHostingPermission puis finalement résolu lui-même pour autant que je sache. Je me demande si le problème était dû en partie à une machine virtuelle et à un deuxième utilisateur connecté en même temps ?! (Le problème a disparu quand un autre utilisateur est rentré chez lui) Une expérience très frustrante, mais au moins, elle semble résolue maintenant. – Gavin
Bugga - le problème est de retour. Donc encore besoin de résoudre. – Gavin
Je suis juste allé ajouter mon assemblage personnalisé au GAC à la fin car il semble que c'est ce que l'entreprise faisait de toute façon. – Gavin