Üks müstiline ja tihtipeale arusaamatu asi SharePointis on see, kuidas kasutaja informatsiooni hoitakse. See on erinev Windows SharePoint Services ja MOSS –s. Aga, mitte seda ei soovi ma seletada, kuidas kasutajainfot hoitakse, sellega on juba mitmed hästi hakkama saanud, ka eesti keeles. Siinjuures viitaks Leivo postitustele:
Hiljuti avastasin aga ühe omapära User Information Listi või siis Kasutajateabe loendiga seoses. Nimelt on erinevates keeltes listi nimetus erinev. Eesti keeles on “Kasutajateabe loend” ja inglise keeles “User Information List”. Kuidas luua siis generic lahendus, mis toimiks mõlema keele puhul? Enamus SharePointi arendajaid on harjunud listidele ligi minema nime kaudu.
Nüüd üks harjumusi, mida ma endast välja proovin juurida on see, et kasutada SPWeb.Lists[“Listinimi”] mustrit listile ligi minnes. Selle negatiivne effekt on, et kõik listid laetakse alla ja käiakse läbi, et leida nime järgi õige list. Mitte just kõige praktilisem lähenemine.
Mina harjutan endale sisse, et list laadida alati relative url –i (GetList) või siis listi vormiga (GetListFromUrl) urli järgi. Ja ka antud probleemi juures on see lahenduseks – mitte ligi minna nime kaudu, see on ju erinevates keeltes erinev, url aga on sama igal pool.
Urli on võimalik näiteks teada saada, kui VS debuggeriga SharePointi list alla tõmmata ja siis uurida muutujaid. Kindlasti on viise veel.
Igatahes on kasutaja informatsiooni listi urliks “/_catalogs/users”. Ja koodis saab instantsi alati kätte järgnevalt:
string listUserInformationUrl = "/_catalogs/users";
SPList _userInfoList = web.GetList(listUserInformationUrl);
Kusjuures, nagu te näete, nimega ei ole urlil antud juhul palju pistmist ja ära seda pimesi ei arvaks ega tuletaks.
Edu!