Sharepoint UserProfileService ile Authentication
Sharepoint UserProfileService , bir organizasyonda Active
Directory’de bulunan kullanıcılara ait
bilgilerin sharepoint’in kendi veri tabanında depoladığı bir web servistir.
Formlarımızda bu servisi veri bağlantısı ekleyerek te kullanabiliriz
veya referans olarak ekleyip kod taraflı da çalıştırabiliriz.
· Referans
olarak kullanma (kod yazarak)
UserProfileService Sarepoint sitenizin kurulu olduğu
makinada _vti_bin kasöründe UserProfileService.asmx
olarak tutulur.
UserProfileService kullanılarak form yüklenirken kullanıcıyı
tanıyan ve kullanıcıya ait bilgileri formda ilgili alanlara dolduran örnek bir
infopath formu tasarlıyoruz.
Kullanıcının Ad ve Soyad,
Bölüm, E-Mail, iş telefonu gibi bilgilerinin UserProfileServisten alınacağı
PersonelBilgileri adında bir metod yazıp bu metodu form yüklenirken
çağırıyoruz.
public void
PersonelBilgileri()
{
XPathNavigator
myRoot = MainDataSource.CreateNavigator();
ProfileService.UserProfileService profileService = new ProfileService.UserProfileService();
profileService.UseDefaultCredentials = true;
ProfileService.PropertyData[] userProps = null;
try
{
userProps =
profileService.GetUserProfileByName(null);
}
catch
{
}
if
(userProps == null || userProps.Length == 0)
{
return;
}
for
(int i = 0; i < userProps.Length; i++)
{
XPathNavigator
node = null;
switch
(userProps[i].Name.ToLower())
{
case "preferredname":
node =
myRoot.SelectSingleNode("/my:myFields/my:adsoyad",
NamespaceManager);
break;
case "department":
node =
myRoot.SelectSingleNode("/my:myFields/my:dep",
NamespaceManager);
break;
case "workemail":
node =
myRoot.SelectSingleNode("/my:myFields/my:email",
NamespaceManager);
break;
case "workphone":
node =
myRoot.SelectSingleNode("/my:myFields/my:dahili",
NamespaceManager);
break;
default:
continue;
}
ProfileService.ValueData[] values = userProps[i].Values;
if
(values.Length > 0)
{
if (node != null && string.IsNullOrEmpty(node.Value))
{
node.SetValue(values[0].Value.ToString());
}
}
}
}
Metodumuzu
Form yüklenirken çağırıyoruz.
public void FormEvents_Loading(object
sender, LoadingEventArgs e)
{
PersonelBilgileri();
}
Formumuzu çalıştırdığımızda;
·
Veri Bağlantısı ekleyerek kullanma
Hazırlayan:Güler
ONUK
No comments:
Post a Comment