c# - 在 .NET5 中调出 Sharepoint 提示
问题描述
我们过去可以SharePoint Online
使用SharePointOnlineCredentials
该类登录,例如此处。
此类在 .NET5 中不可用,并且我没有必要的 Azure 权限来在 Azure AD 中配置应用程序,如此处所述
我想要一个 C# 程序显示一个提示,以便用户可以手动登录 Sharepoint。一旦用户完成了这个,程序就会做它需要做的事情。是否有一些 C# 代码会显示 Sharepoint 在线登录提示?
我已经下载了 Pnp 和 CSOM。此代码包含以下错误。
当前上下文中不存在名称“GetSecureString”
方法“GetContext”没有重载需要 3 个参数
'Program.GetContext(Uri, string, SecureString)':并非所有代码路径都返回值当前上下文中不存在名称'context'
using System;
using System.Security;
using Microsoft.SharePoint.Client;
using System.Threading.Tasks;
using PnP.Framework;
namespace ConsoleApplication1
{
class Program
{
public static async Task Main(string[] args)
{
Uri site = new Uri("https://contoso.sharepoint.com/sites/siteA");
string user = "joe.doe@contoso.onmicrosoft.com";
SecureString password = GetSecureString($"Password for {user}");
// Note: The PnP Sites Core AuthenticationManager class also supports this
using (var authenticationManager = new AuthenticationManager())
using (var context = authenticationManager.GetContext(site, user, password))
{
context.Load(context.Web, p => p.Title);
await context.ExecuteQueryAsync();
Console.WriteLine($"Title: {context.Web.Title}");
}
}
public ClientContext GetContext(Uri web, string userPrincipalName,
SecureString userPassword)
{
context.ExecutingWebRequest += (sender, e) =>
{
// Get an access token using your preferred approach
string accessToken = MyCodeToGetAnAccessToken(new Uri($"
{web.Scheme}://{web.DnsSafeHost}"), userPrincipalName, new
System.Net.NetworkCredential(string.Empty, userPassword).Password);
// Insert the access token in the request
e.WebRequestExecutor.RequestHeaders["Authorization"] =
"Bearer " + accessToken;
};
}
}
}
解决方案
推荐阅读
- json - 如何在 MQTT 中使用 shell 变量
- python - 需要在前面转换具有唯一值的行中的所有列吗?
- android - 以编程方式更新 android 较低版本
- html - 尽管达到了外部容器的最大宽度,但仍将 HTML 元素居中
- python - 为什么一旦将一些指标添加到模型中,损失图就会消失?
- azure - 术语“Select-AzureSubscription”未被识别为 cmdlet、函数的名称
- java - mongo 计数查询的性能改进
- spring-boot - 适用于 ecipe 但不适用于本地 tomcat 服务器
- android - Cordova http angularjs 拦截器
- javascript - 将 LI 添加到 UL 顶部(EJS、MONGO、Node[Express])