首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有Azure Active身份验证的独立Blazor WASM .Net6应用程序在本地工作,而不是部署到Azure静态应用程序服务中

具有Azure Active身份验证的独立Blazor WASM .Net6应用程序在本地工作,而不是部署到Azure静态应用程序服务中
EN

Stack Overflow用户
提问于 2022-04-21 14:53:47
回答 1查看 340关注 0票数 0

这个问题我已经有好几天了,还没弄清楚是什么。

在我的Blazor独立程序中,我使用Azure活动目录处理身份验证,并遵循以下步骤设置它:1

它在本地非常有效,但在将其从Azure DevOps发布到Azure的静态Web应用服务之后,身份验证重定向就停止了工作,在查看了该站点使用Fiddler提出的请求之后,很明显,重定向到Microsofts身份验证站点从未发生过。

有趣的是,在回调的URL中没有身份验证错误消息(因为我通常是在出了问题时得到的)--根本没有信息,弹出窗口也没有打开。这里是我从浏览器控制台获得的唯一错误信息

部署到Azure静态应用程序就像本教程中的2一样,这是我的DevOps管道yaml,以防有帮助。

代码语言:javascript
复制
# Example Taken From https://reddit.fun/96630/devops-pipeline-unable-deploy-blazor-static-package-private
    # research documentation https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/webassembly?view=aspnetcore-6.0#standalone-deployment
    # Documentation of Azure Static Web App Task https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/azure-static-web-app?view=azure-devops
    
    trigger:
    - main
    
    pool:
      vmImage: ubuntu-latest
    
    variables:
      buildConfiguration: 'Release'
      dotNetFramework: 'net6.0'
      dotNetVersion: '6.0.x'
    
    steps:
    - checkout: self
      submodules: true
    
    - task: UseDotNet@2
      inputs:
        version: $(dotNetVersion)
        includePreviewVersions: true
    
    - task: CmdLine@2
      inputs:
        script: "dotnet workload install wasm-tools" 
    
    - task: DotNetCoreCLI@2
      displayName: "dotnet restore"
      inputs:
        command: restore
        projects: '**/*.csproj'
    
    - task: DotNetCoreCLI@2
      displayName: "Publish Blazor App"
      inputs:
        command: publish
        publishWebProjects: true #required for publish
        arguments: '--configuration $(buildConfiguration) --framework $(dotNetFramework) --output $(Build.ArtifactStagingDirectory)'
        zipAfterPublish: false
    
    - task: DownloadPipelineArtifact@2
      displayName: "Download Artifacts"
      inputs: 
        targetPath: '$(Build.ArtifactStagingDirectory)'
    
    - bash: cd $(Build.ArtifactStagingDirectory); echo $(ls); cd 'KapaBlazorWeb'; echo $(ls); 
    
    - task: AzureStaticWebApp@0
      inputs:
        cwd: $(Build.ArtifactStagingDirectory)
        skip_app_build: true # skip build because restore of build will probably fail?!
        app_location: '[BlazorAppName]/wwwroot'
        azure_static_web_apps_api_token: '[TOKEN]]'

我的问题是,如果您发生过类似的事情,并且您知道如何解决这个问题,因为我对Azure非常陌生,而且从未使用过Azures静态Webservice。也许问题不在于Blazor本身,而在于静态应用程序服务?有什么我可以错过的吗?有没有办法了解更多关于ASW上正在发生的事情的信息?

编辑: Update I还发布了由Visual模板生成的默认Blazor Wasm项目(也是独立的),并且在本地也是如此,但是在Azure提供的静态Web服务上,重定向到Microsofts身份验证页面永远不会发生,它总是会转到‘/验证/登录失败’路径。

我猜想IIS服务器存在一些我还无法找到的配置问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-22 15:01:52

好的,我终于找到了这个问题,我想把它放在这里:

在使用默认的Blazor模板测试所有内容之后,我至少得到了一个错误,这个问题最终得到了答案:

BuzorWASMNET6Preview4AzureAD-登录时出错:“无法读取未定义属性”toLowerCase“

然后,我将这三行添加到csprj文件中(就在包含所有PackageReferences的Itemgroup下面)

代码语言:javascript
复制
<ItemGroup>
    <TrimmerRootAssembly Include="Microsoft.Authentication.WebAssembly.Msal" />
</ItemGroup>

现在它神奇地起作用了--显然是因为这个包在发布过程中被修剪了,这导致了问题的出现。

希望它对将来的人有帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71956561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档