来自 Web 应用程序的 Azure 异步身份验证令牌

詹姆斯·兰德尔斯

我正在尝试从 Azure AD 系统检索身份验证令牌。我尝试了多种不同的方式来配置异步方法和 await 命令,但每次我都收到错误“任务被取消”。

我的 aspx 页面中有 async="true" 。

为了获得成功的请求并检索令牌,我需要做什么不同的想法。

相同的代码在控制台应用程序中工作,因此,我假设问题与异步操作的发生方式有关。

我的代码如下:

protected async void Login_click(object sender, EventArgs e)
{
    response1.Text = "Started";
    var tentantID = ConfigurationManager.AppSettings["tenantID"];
    var clientId = ConfigurationManager.AppSettings["applicationID"];
    var secret = ConfigurationManager.AppSettings["secret"];

    await Authorize(tentantID , clientId, secret);
}
private async Task<AuthenticationResult> GetToken(string clientId, string tenantDomain, string clientSecret)
{
    AuthenticationResult result = null;

    var context = new AuthenticationContext("https://login.microsoftonline.com/" + tenantDomain);

    try
    {
        ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
        return result = await context.AcquireTokenAsync("https://management.core.windows.net/", clientCredential).ConfigureAwait(false);

    }   
    catch (AdalException ae)
    {
        //Error code
        return null;
    }
    catch (Exception e)
    {
        //Error code
        return null;
    }
}

private async Task Authorize(string tenant, string clientId, string clientSecret)
{
    var authenticationResult = await GetToken(clientId, tenant, clientSecret).ConfigureAwait(false);

    string token = authenticationResult.AccessToken;
}

编辑...我更新的代码:

protected void Login_click(object sender, EventArgs e)
{
    response1.Text = "Started";

    RegisterAsyncTask(new PageAsyncTask(Authorize));
}  
public async Task Authorize()
{

    var tentantID = ConfigurationManager.AppSettings["tenantID"];
    var clientId = ConfigurationManager.AppSettings["applicationID"];
    string myKey = ConfigurationManager.AppSettings["myKey"];
    var tenantDomain = ConfigurationManager.AppSettings["tenantDomain"];

    var context = new AuthenticationContext("https://login.microsoftonline.com/" + tenantDomain, false);

    try
    {
        ClientCredential clientCredential = new ClientCredential(clientId, myKey);
        var result = context.AcquireTokenAsync("https://management.core.windows.net/", clientCredential).ConfigureAwait(false);

        AuthenticationResult resVal = await result;
        token = resVal.AccessToken;
    }
    catch (AdalException ae)
    {
        //error code
        token = ae.InnerException.Message;
    }
}
陈小龙

根据您的描述,我已通过在 .NET Framework 4.5 上创建我的 Web 窗体应用程序目标并引用Active Directory 身份验证库 3.13.8 来测试此问题根据您的代码,它可以在我这边按预期工作并部署到 Azure Web App。这是我的git 示例,您可以参考它并尝试找出它是否可以按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在移动Web应用程序中存储身份验证令牌的最安全方法

来自分类Dev

在客户端OWIN Web应用程序中实现Azure Active Directory身份验证

来自分类Dev

针对Web应用程序和移动应用程序的REST API身份验证

来自分类Dev

移动应用程序Web API身份验证

来自分类Dev

在Azure上使用SqlMembership Provider和Forms身份验证连接ASP.NET Web应用程序

来自分类Dev

Azure API应用程序问题-身份验证

来自分类Dev

允许控制台应用程序访问Windows身份验证的Web应用程序

来自分类Dev

Azure本机应用程序通用身份验证

来自分类Dev

如何在Azure功能中重用来自应用程序服务的AD身份验证?

来自分类Dev

使用来自Web API中客户端应用程序的令牌的Azure AD

来自分类Dev

存储来自Azure IOT Hub的最后一个事件以在Web应用程序中使用

来自分类Dev

为什么Google身份验证令牌刷新最近在Android的Azure移动应用程序SDK中仍然失败

来自分类Dev

用户通过Google Web应用程序进行身份验证后,获取并使用访问令牌

来自分类Dev

来自其他租户的应用程序的Azure SQL AAD身份验证

来自分类Dev

是否可以知道Firebase身份验证是来自Android应用程序还是iPhone应用程序或Web应用程序?

来自分类Dev

使用Windows身份验证和Web应用程序的IIS与Web应用程序

来自分类Dev

Web应用程序和请求身份验证

来自分类Dev

Tomcat身份验证和特定的Web应用程序身份验证

来自分类Dev

移动应用程序Web API身份验证

来自分类Dev

在Azure上使用SqlMembership Provider和Forms身份验证连接ASP.NET Web应用程序

来自分类Dev

使用来自移动应用程序的令牌进行剩余API身份验证

来自分类Dev

Azure移动应用程序中的应用程序身份验证。如何?

来自分类Dev

两个 Azure Web 应用程序是否可以使用相同的令牌进行身份验证?

来自分类Dev

如何验证 Web 服务调用是否来自 android 应用程序

来自分类Dev

azure 身份验证 Web 应用 localhost 回复 url

来自分类Dev

应用程序之间的 azure 应用程序身份验证/授权

来自分类Dev

Web 应用程序、Web API 和移动应用程序之间的身份验证

来自分类Dev

ASP.NET Core Web 应用程序的 Azure AD 身份验证

来自分类Dev

来自Android应用程序的cakephp JWT身份验证的令牌值应该是多少?

Related 相关文章

  1. 1

    在移动Web应用程序中存储身份验证令牌的最安全方法

  2. 2

    在客户端OWIN Web应用程序中实现Azure Active Directory身份验证

  3. 3

    针对Web应用程序和移动应用程序的REST API身份验证

  4. 4

    移动应用程序Web API身份验证

  5. 5

    在Azure上使用SqlMembership Provider和Forms身份验证连接ASP.NET Web应用程序

  6. 6

    Azure API应用程序问题-身份验证

  7. 7

    允许控制台应用程序访问Windows身份验证的Web应用程序

  8. 8

    Azure本机应用程序通用身份验证

  9. 9

    如何在Azure功能中重用来自应用程序服务的AD身份验证?

  10. 10

    使用来自Web API中客户端应用程序的令牌的Azure AD

  11. 11

    存储来自Azure IOT Hub的最后一个事件以在Web应用程序中使用

  12. 12

    为什么Google身份验证令牌刷新最近在Android的Azure移动应用程序SDK中仍然失败

  13. 13

    用户通过Google Web应用程序进行身份验证后,获取并使用访问令牌

  14. 14

    来自其他租户的应用程序的Azure SQL AAD身份验证

  15. 15

    是否可以知道Firebase身份验证是来自Android应用程序还是iPhone应用程序或Web应用程序?

  16. 16

    使用Windows身份验证和Web应用程序的IIS与Web应用程序

  17. 17

    Web应用程序和请求身份验证

  18. 18

    Tomcat身份验证和特定的Web应用程序身份验证

  19. 19

    移动应用程序Web API身份验证

  20. 20

    在Azure上使用SqlMembership Provider和Forms身份验证连接ASP.NET Web应用程序

  21. 21

    使用来自移动应用程序的令牌进行剩余API身份验证

  22. 22

    Azure移动应用程序中的应用程序身份验证。如何?

  23. 23

    两个 Azure Web 应用程序是否可以使用相同的令牌进行身份验证?

  24. 24

    如何验证 Web 服务调用是否来自 android 应用程序

  25. 25

    azure 身份验证 Web 应用 localhost 回复 url

  26. 26

    应用程序之间的 azure 应用程序身份验证/授权

  27. 27

    Web 应用程序、Web API 和移动应用程序之间的身份验证

  28. 28

    ASP.NET Core Web 应用程序的 Azure AD 身份验证

  29. 29

    来自Android应用程序的cakephp JWT身份验证的令牌值应该是多少?

热门标签

归档