none
Como via programação C#, obter informações de um usuário quando o recurso de My Sites está ativado no SharePoint 2013? RRS feed

  • Pergunta

  • Olá a todos do fórum,

    Estou fazendo um desenvolvimento em C# para o SharePoint 2013 Enterprise e preciso de uma forma de obter informações de um usuário como por exemplo e-mail, etc. Antes do recurso de My Sites ser ativado, eu conseguia essas informações facilmente via programação pela lista "Informações de usuário". Não sei explicar como, mas depois de ativar esse recurso de My Sites,  não consigo obter nenhuma informação por esta lista. Alguém sabe alguma forma de via programação conseguir as informações de um determinado usuário?

    Eu tentei o seguinte código mas não me forneceu nenhuma informação:

    //Obter email de usuário programáticamente
    
    string userName = "domínio\userName";
    
    SPSite site = SPContext.Current.Web.Site;
    
    SPServiceContext context = SPServiceContext.GetContext(site);
    
    UserProfileManager upm = new UserProfileManager(context);
    
    UserProfile profile = upm.GetUserProfile(userName);
    
    String WorkEmail = profile[PropertyConstants.WorkEmail].Value.ToString();
    
    this.Label1.Text = "E-mail: " + WorkEmail +"; //email do usuário userName

    Grato por qualquer orientação.

    Att.:
    Santiago Silva

    sexta-feira, 26 de abril de 2013 20:08

Todas as Respostas

  • Olá Santiago,

    olha eu já fiz isso com as seguintes linhas de código:

    private SPWeb web = SPContext.Current.Site.OpenWeb();
    txtMail.Text = web.CurrentUser.Email;

    terça-feira, 30 de abril de 2013 13:50
  • Obrigado pela dica, vou postar o resultado do meu teste.

    Att.:
    Santiago Silva

    sexta-feira, 3 de maio de 2013 19:27
  • Quando você utiliza o recurso MySite as informações retornadas do serviço de UserProfile tem de estar preenchidas no perfil do usuário.

    Nesse caso o código que você utilizou está correto.

    Mas ainda existe um diferença de informações ao obter os dados do usuário.

    Você ainda consegue obter os dados pelo contexto do site, no caso do usuário logado:

    SPContext.Current.Web.CurrentUser.Email

    Ou utilizar as Collections de usuários que também há no site:

    SPContext.Current.Web.SiteUsers;

    ou

    SPContext.Current.Web.AllUsers;

    ou

    SPContext.Current.Web.Users;


    Veja qual te atenderia e nos avise.

    Abraços.

    sábado, 4 de maio de 2013 16:30