c# - 使用 .NET Core 3.1 使用 Sharepoint 在线 CSOM (REST API) 操作并将其公开在 OData 控制器中
问题描述
我是sharepoint CSOM的新手,
环境:Net core 3.1、SharePoint、
包:Microsoft.SharePointOnline.CSOM(16.1.20912.12000)、System.IndentityModel.Tokens.JWT(6.8.0)
我想根据参数中给出的关键字“accountName”从 sharePoint 获取用户列表,并将此结果公开在 OData 控制器中。
我有一个共享点方法的服务,这里是实现:
public ClientContext GetContext(Uri site, string user, SecureString password)
{
using (var authenticationManager = new AuthenticationManager())
{
return authenticationManager.GetContext(site, user, password);
}
}
public void GetUsersFromSharePoint(string accountName)
{
Uri site = new Uri(_configuration["SharePointConfiguration:WebSiteUrl"]);
string user = _configuration["SharePointConfiguration:Login"];
string rawPassword = _configuration["SharePointConfiguration:Password"];
SecureString password = new SecureString();
foreach (char c in rawPassword) password.AppendChar(c);
using (var context = GetContext(site, user,password))
{
var users = context.LoadQuery(context.Web.SiteUsers.Where(u => u.LoginName.ToLower().Contains(accountName.ToLower() && u.PrincipalType == PrincipalType.User && u.UserId.NameIdIssuer == "urn:federation:microsoftonline")));
context.ExecuteQuery();
}
}
这是我的控制器:
[ApiVersion("1.0")]
[ODataRoutePrefix("SharePoint")]
[ApiExplorerSettings(IgnoreApi = false)]
[EnableCors("onBookingPolicy")]
public class SharePointController : ODataController
{
private readonly ISharePointService _sharePointService;
public SharePointController(ISharePointService sharePointService)
{
_sharePointService = sharePointService;
}
}
我想知道该过程是否可以很好地获得预期结果以及如何以 json 格式呈现此结果以将其公开在我的 OData 控制器中
先感谢您。
解决方案
推荐阅读
- php - 如何在首字母日期中将日期拆分为间隔
- javascript - 无法更新反应状态
- reactjs - 如何在反应应用程序中按属性选择嵌套层次结构中的所有对象?
- python-3.6 - python3.6 导入简历失败
- mysql - 查询mysql获取最大值和分组依据
- jquery - 如何使用 JQuery 查找 HTML 类的数组索引的最大值
- javascript - nodejs中zip的多线程
- python - 我想在 jupyter notebook 中显示一个数据框,它在微秒内频繁更新
- phpmyadmin - tx_news_domian_model_news 通过单击 EMPTY 和 Truncate 意外从数据库中删除(在 phpMyAdmin 中)
- ios - Xamarin.iOS 写入 NFC