Microsoft Graph SDK – 登录

是否可以仅使用MS Graph登录一次? 目前,每当我调用graphServiceClient时,它都会要求我登录或选择已登录的用户。 有没有办法可以避免选择登录用户的过程? 提前致谢。

目前这是我初始化graphService的方式。

public static GraphServiceClient GetAuthenticatedClient() { GraphServiceClient graphClient = new GraphServiceClient( new DelegateAuthenticationProvider( async (requestMessage) => { string appID = ConfigurationManager.AppSettings["ida:AppId"]; PublicClientApplication PublicClientApp = new PublicClientApplication(appID); string[] _scopes = new string[] { "Calendars.read", "Calendars.readwrite" }; AuthenticationResult authResult = null; authResult = await PublicClientApp.AcquireTokenAsync(_scopes); //Opens Microsoft Login Screen // Append the access token to the request. requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", authResult.AccessToken); })); return graphClient; } 

现在每当我使用标准SDKfunction时,它都会要求我登录:

await graphClient.Me.Events [testID] .Request()。UpdateAsync(x);

当我使用另一个function时它会再次问我:

await graphClient.Me.Events.Request()。AddAsync(newEvent);

对的,这是可能的。 AcquireTokenAsync始终触发登录。 相反,您需要实现令牌缓存并使用AcquireTokenSilentAsynchttps://docs.microsoft.com/en-us/outlook/rest/dotnet-tutorial有一个Web应用程序示例。