我实际上正在探索 microsoft graph api 并寻找一种无需任何交互即可以用户身份进行身份验证的解决方案,但找不到解决方案。我发现的每个代码示例都需要用户交互才能登录 microsoft 以获得令牌。是否有可能避免用户交互?
否则,我在此示例中找到了客户端凭据流的解决方法:https : //github.com/microsoftgraph/console-csharp-snippets-sample 但如果我尝试在 c# Asp.net mav applcition 或 Windows 窗体中实现此代码应用程序我无法获得应用程序令牌。如果我调试应用程序,它会一直等待令牌,但不会引发错误(病毒保护已停用)。有人对主要问题或我的解决方法有想法吗?
这是我尝试获取令牌的解决方法的代码,但卡在 daemonClient.AcquireTokenForClientAsync 上。
public async Task<Users> GetUser(string Username)
{
MSALCache appTokenCache = new MSALCache(clientId);
ClientCredential clientdummy = new ClientCredential(clientSecret);
ConfidentialClientApplication daemonClient = new ConfidentialClientApplication(clientId, string.Format(AuthorityFormat, tenantId), redirectUri,
clientdummy, null, null);
authenticate(daemonClient).Wait();
string token = authResult.AccessToken;
client = GetAuthenticatedClientForApp(token);
IGraphServiceUsersCollectionPage users = client.Users.Request().GetAsync().Result;
}
private async Task<AuthenticationResult> authenticate(ConfidentialClientApplication daemonClient)
{
authResult = await daemonClient.AcquireTokenForClientAsync(new[] { MSGraphScope });
return authResult;
}
胡子哥哥
SMILET
相关分类