2010-06-14 3 views
1

J'ai un site sharepoint et un portail aspx personnalisé, tous deux sous Windows Authentification. Avec la même machine, il arrive que mon site sharepoint me renvoie ma connexion actuelle, alors que mon aspx personnalisé me renvoie mon compte d'administrateur de domaine à la place.Sharepoint UserProfileService

Y at-il de toute façon que je puisse m'assurer que les deux connexions sont les mêmes? Sinon, est-il possible de consommer SPUserProfileService à partir d'un portail aspx personnalisé? Principalement, j'ai besoin d'avoir le portail aspx personnalisé pour obtenir l'ID de connexion SharePoint. Néanmoins, je pourrais toujours déclencher AccessDenied.aspx dans sharepoint pour demander des connexions.

Répondre

0

Lorsque vous dites "Portail ASPX personnalisé", est-il toujours hébergé sur le site SharePoint?

Dans ce cas, comment obtenez-vous l'utilisateur? Vous pouvez utiliser SPContext.Current.Web.CurrentUser pour obtenir l'utilisateur.

0

Il semble que vous vous connectiez à partir de votre ASPX personnalisé vers SharePoint à l'aide de votre compte d'administrateur de domaine. Pourriez-vous décrire plus en détail votre portail aspx personnalisé et la façon dont vous lisez le nom d'utilisateur?

Cependant, vous pouvez consulter mon article (Même si il est pour les utilisateurs FBA, vous pouvez trouver l'extrait de code utile): Possible ways to get logged in User Name & Handling Changes in FBA Users' Names if Membership Provider Name Changed

public string GetFlatUserName() 
{ 
    //First, be sure that the user is not anonymous user: 
    if (SPContext.Current == null || SPContext.Current.Web.CurrentUser == null) 
     return "Anonymous"; 
    //Second, parse it: 
    else 
    { 
     string flatUserName = this.Page.User.Identity.Name; 
     if (flatUserName.Contains("\\")) 
     { 
      flatUserName = flatUserName.Substring(flatUserName.IndexOf("\\") + 1); 
     } 
     else if (flatUserName.Contains("|")) 
     { 
      flatUserName = flatUserName.Substring(flatUserName.IndexOf("|") + 1); 
     } 
     return flatUserName; 
    } 
}