在IIS中的自定义网站中托管时,Azure SSO示例代码无法正常工作

问题描述

我正在尝试Microsoft身份平台的示例代码,以向Web应用程序添加身份验证和授权。 链接(https://github.com/Azure-Samples/ms-identity-aspnet-webapp-openidconnect)中的示例在IIS Express中运行良好。 当我尝试使用IIS中的自定义网站托管同一网站时,它无法正常工作。下面介绍了我所遵循的步骤以及出现的问题。

在IIS Express中托管

  1. 示例代码的索引页具有使用Microsoft登录按钮

  2. 点击使用Microsoft登录时,会提示输入用户名和密码。

  3. 输入凭据后,将使用登录的用户名更新索引页面

自定义IIS网站中的住宿

  1. 同一应用程序位于IIS的自定义网站中。在这里,同时点击使用Microsoft登录时,会提示输入用户名和密码

  2. 输入用户名和密码后,它将被重定向到索引页面。

  3. 但是出现的问题是用户名未更新,并再次显示使用Microsoft登录,因为 ClaimsPrincipal 类无法获取用户名

我无法理解为什么在同一应用程序在IIS Express中运行良好的同时会发生这种情况。 请帮我解决这个问题。 谢谢。

解决方法

在Microsoft azure开发人员支持的帮助下,我能够找到根本原因。 我们必须在redirect-uri值的末尾加上斜杠(/),如下所示。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>

  <table class="table fold-table parent" id="table">
    <thead>
      <tr>

        <th scope="col">Name</th>
        <th scope="col">Designation</th>
        <th scope="col">Contact Details</th>
        <th scope="col">Email</th>
      </tr>
    </thead>
    <tbody>
      <tr class="view">

        <td col="Name">John</td>
        <td col="Designation">j@g.com</td>
        <td col="Contact Details">
          <span class="contactInfo">
            <img class="contact mr-2" src="./assets/call.png" />35373726<br>
            <img class="contact mr-2" src="./assets/call.png" />35373726
          </span>
        </td>
        <td col="Email">John@g.com<img class="expand ml-2" src="arrow.png" /></td>
      </tr>
      <tr class="fold">
        <td colspan="4">
          <div class="fold-content">
            <table class="child">

              <tbody>
                <tr>
                  <td col="Name">SUB Category 1</td>
                  <td col="Designation">SUB Category 2</td>
                  <td col="Contact Details">SUB Category 3</td>
                  <td col="Email">John@g.com

                  </td>
                </tr>

                <tr>

                  <td col="Name">SUB Category 1</td>
                  <td col="Designation">SUB Category 2</td>
                  <td col="Contact Details">SUB Category 3</td>
                  <td col="Email">John@g.com

                  </td>
                </tr>
                <tr>
                  <td col="Name">SUB Category 1</td>
                  <td col="Designation">SUB Category 2</td>
                  <td col="Contact Details">SUB Category 3</td>
                  <td col="Email">John@g.com
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
        </td>
      </tr>

    <tbody>
  </table>
</body>

在用于AD的azure门户中,对于相应的应用程序,您应该具有相同的redirect-uri值。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...