quinta-feira, 10 de abril de 2008

Sharepoint User Profile

Quando vamos criar um projeto com autenticação forms no MOSS sempre nos vem a pergunta, Onde vamos guardar as informações dos usuários? Em lista, em Banco, no próprio membership onde?
A resposta para essa pergunta é n.d.a =]
O jeito correto de guardar usuários é o User Profile, com ele é possível administrar usuários em um lugar único, ou seja, várias web app podem compartilhar os mesmos usuários.
O User Profile já vem com diversos campos por default e também possibilita a criação de novos campos tanto via interface, quanto via Object Model. O namespace responsável por manipular o User Profile é Microsoft.Office.Server.UserProfiles.

Criando usuários:
try{
using (SPSite spSite = new SPSite(@"http://localhost")){
ServerContext siteContext = ServerContext.GetContext(spSite);
UserProfileManager pmManager = new UserProfileManager(siteContext);
Console.WriteLine("Number of users: " + pmManager.Count);
string strUserName = "macanudocorporation\\admin";
UserProfile newUser = null;
if (!pmManager.UserExists(strUserName))
{
newUser = pmManager.CreateUserProfile(strUserName);
}
}
}catch (Exception exp){
Console.WriteLine(exp.Message);
}

Editando Usuários

try{
using (SPSite spSite = new SPSite(@"http://localhost")){
ServerContext siteContext = ServerContext.GetContext(spSite);
UserProfileManager pmManager = new UserProfileManager(siteContext);
Console.WriteLine("Number of users: " + pmManager.Count);
string strUserName = "macanudocorporation\\admin";
UserProfile newUser = null;
if (!pmManager.UserExists(strUserName))
{
user = pmManager.GetUserProfile(strUserName);
}
}
}catch (Exception exp){
Console.WriteLine(exp.Message);
}


Deletando usuários

try{
using (SPSite spSite = new SPSite(@"http://localhost"))
{
ServerContext siteContext = ServerContext.GetContext(spSite);
UserProfileManager pmManager = new UserProfileManager(siteContext);
Console.WriteLine("Number of users: " + pmManager.Count);
string strUserName = "macanudocorporation\\admin";
if (pmManager.UserExists(strUserName))
{
pmManager.RemoveUserProfile(strUserName);
}
}
}catch (Exception exp){
Console.WriteLine(exp.Message);
}

Por hora é isso!


Abraços,
Maca

2 comentários:

André disse...

oi, precisava de tirar umas dúvidas com você. podia-me dar o seu contacto de email?

Leonardo Macanudo disse...

claro, pode mandar sua dúvida para:
leonardomacanudo@hotmail.com

Abraços,
Leonardo