我正在尝试构建一个(C#)Web应用程序,允许客户与我约会。 我希望网络应用能够阅读并添加条目到我的Outlook日历。 许多用户将使用网络应用程序,但网络应用程序只能访问一个Outlook日历 - 我的。 我能够开始工作的所有示例都让Web应用程序用户以交互方式进行身份验证 - 但我的用户不会知道我的密码。 我想在网络应用中硬编码我的用户名/电子邮件地址和密码。
尝试获取令牌时,我收到错误:
$(window).on('load', function () {
alert("Window Loaded");
});
我不是租客的管理员。有没有办法让我在没有管理员参与的情况下工作? 使用某种证书而不是用户名和密码作为用户凭证会有帮助吗?
我的代码(目前在一个简单的C#控制台应用程序中)如下:
Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException:
AADSTS65001: The user or administrator has not consented to use the application.
Send an interactive authorization request for this user and resource.
答案 0 :(得分:2)
要启用使用用户名和密码直接请求令牌,我们需要同意使用该应用。
我们可以使用 OAuth 2.0授权代码授权流程来授予用户同意。以下是使用ADAL身份验证库( 3.13.1.846 )获取委托令牌的示例:
static string authority= "https://login.microsoftonline.com/common";
public static string GetDeligateToken(string resource, string clientId,string redirectURL)
{
AuthenticationContext authContext = new AuthenticationContext(authority);
AuthenticationResult authResult= authContext.AcquireTokenAsync(resource, clientId,new Uri(redirectURL), new PlatformParameters(PromptBehavior.Auto)).Result;
return authResult.AccessToken;
}
在我们同意该应用后,现在我们可以使用您帖子中的代码来获取令牌。