0

我似乎无法理解为什么我会遇到这个问题,任何人都可以帮助我在 C# MVC Web 应用程序中开发

<script src=@string.Format("https://unpkg.com/@microsoft/mgt/dist/bundle/mgt-loader.js")></script>
<mgt-msal-provider client-id=@appId
    login-type="popup"
    scopes="user.read,people.read"
    authority=@authority></mgt-msal-provider>

<mgt-login id="header-login" class="header-login"></mgt-login>

我得到的错误图片

同样,当尝试通过 mvc C# 连接到登录时,它工作正常,没有 cors 错误。

在javascript中我试过这个来尝试解决cors错误但什么也没做

XMLHttpRequest.prototype.origOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function () {
    this.origOpen.apply(this, arguments);
    this.setRequestHeader("Access-Control-Allow-Origin", "*");
    this.setRequestHeader("Access-Control-Allow-Headers", "*");
    this.setRequestHeader("Access-Control-Allow-Credentials", "true");
}

使用 * 只是尝试让它工作(也尝试过https://localhost:44375

4

1 回答 1

2

根据文档,权限应采用以下格式:

  • https://login.microsoftonline.com/<tenant>/,其中是 Azure Active Directory (Azure AD) 租户的租户 ID 或与此 Azure AD 租户关联的域。仅用于登录特定组织的用户。
  • https://login.microsoftonline.com/common/. 用于使用工作和学校帐户或个人 Microsoft 帐户登录用户。
  • https://login.microsoftonline.com/organizations/. 用于使用工作和学校帐户登录用户。
  • https://login.microsoftonline.com/consumers/. 用于仅使用个人 Microsoft 帐户(以前称为 Windows Live ID 帐户)登录用户。

尝试v2.0从您的权限字符串中删除,看看是否可以解决问题:

权限 = https://login.microsoftonline.com/ {tenant_id}/ v2.0

于 2020-04-16T00:11:18.920 回答