Exception System.ArgumentException lorsque vous vous dé connectez à une application web

Symptômes

Lorsque vous vous connectez à une application web SharePoint 2013 configurée par plusieurs fournisseurs d’authentification (par exemple, les fournisseurs d’authentification basée sur les revendications Windows et les fournisseurs d’authentification par revendications FBA), le message d’exception de pile d’appels suivant s’affiche sur une page d’exception :

Exception of type 'System.ArgumentException' was thrown. Parameter name: encodedValue at  
Microsoft.SharePoint.Administration.Claims.SPClaimEncodingManager.DecodeClaimFromFormsSuffix(System.String)  
Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(Microsoft.IdentityModel.Claims.IClaimsIdentity, System.String)  
Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(System.String)  
Microsoft.SharePoint.Utilities.SPUtility.GetFullUserKeyFromLoginName(System.String)  
Microsoft.SharePoint.ApplicationRuntime.SPHeaderManager.AddIsapiHeaders(System.Web.HttpContext, System.String, System.Collections.Specialized.NameValueCollection)  
Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PreRequestExecuteAppHandler(System.Object, System.EventArgs)  

Cause

Ce problème se produit car un contexte utilisateur non valide est laissé dans le cache IIS.

Résolution

Pour résoudre ce problème, remplacez le lien de connexion par le lien Connexion en tant qu’utilisateur différent pour tous les serveurs web frontux de la batterie de serveurs SharePoint en suivant les étapes suivantes :

  1. Dans le dossier suivant, ouvrez le fichier welcome.ascx dans un éditeur de texte tel que le bloc-notes :

    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES
    
  2. Remplacez l’ancien texte par le nouveau texte comme suit :
    Ancien texte

    <SharePoint:MenuItemTemplate runat="server" id="ID_Logout"  
    Text="<%$Resources:wss,personalactions_logout%>"  
    Description="<%$Resources:wss,personalactions_logoutdescription%>"  
    MenuGroupId="100"  
    Sequence="400"  
    UseShortId="true"  
    />  
    

    Nouveau texte

    <SharePoint:MenuItemTemplate runat="server" ID="ID_LoginAsDifferentUser"  
    Text="<%$Resources:wss,personalactions_loginasdifferentuser%>"   
    Description="<%$Resources:wss,personalactions_loginasdifferentuserdescription%>"   
    MenuGroupId="100"   
    Sequence="400"   
    UseShortId="true"   
    />  
    

    Remarque Les attributs de texte et de description sont modifiés pour simuler le bouton de ff de logo.

Informations supplémentaires

Encore besoin d’aide ? Accédez au site de la Communauté SharePoint.