目前,我正在处理从非SharePoint页面调用以运行SharePoint代码以执行某些操作的.net web api。我已共享配置的visual studio,以便每个人都可以通过我系统的IP URL访问该页面。 web api中的代码工作正常,因为它总是将我的帐户用于执行每个操作。
那么,如果我拥有用户的域名,我们如何从其他用户帐户运行客户端上下文。
keys = ['key1', 'key2', 'key3']
links_list = []
# loop through all keys and search for them
for key in keys:
searchbox = driver.find_elements_by_name('searchterm')[1]
searchbox.send_keys(key)
button = driver.find_element_by_xpath("//div[contains(@class, 'submit-btn')]")
button.click()
# go through all the search results per key and add them to the links_list
div = driver.find_elements_by_class_name('search-result')
for tags in div:
links = (tags.find_elements_by_css_selector('a'))
for elem in links:
links_list.append(elem.get_attribute('href'))
如果我想在此用户名下运行clientcontext。我怎样才能做到这一点。我发现下面的代码适用于服务器端
ClientContext clientContext = new ClientContext(siteUrl);
Web web = clientContext.Web;
User user = web.EnsureUser(@"domain\user1");
clientContext.Load(user);
clientContext.ExecuteQuery();
string title = user.Title;
string loginName = user.LoginName;
CSOM中此代码的替代方法是什么。
提前致谢
答案 0 :(得分:0)
我们可以使用NetworkCredential方法传递用户凭据,下面的代码片段供您参考:
using (ClientContext context = new ClientContext("http://yourserver/")) {
context.Credentials = new NetworkCredential("user", "password", "domain");
List list = context.Web.Lists.GetByTitle("Some List");
context.Load(list);
context.ExecuteQuery();
//do something
}
参考:Authentication when using the SharePoint client object model