【问题标题】:IIS Blazor App (Intranet) require entering Windows CredentialsIIS Blazor 应用程序(Intranet)需要输入 Windows 凭据
【发布时间】:2022-04-13 03:40:52
【问题描述】:

我有几个 .NET 5.0 Blazor 应用程序部署到 Windows Server 上的 IIS 10 以用于 Intranet 流量。这些应用程序启用了 Windows 身份验证,并允许用户使用他们的 Windows 凭据查看站点,这些凭据将自动传递到 Blazor 站点(即,它可以向他们显示他们的域帐户信息)。最近,在不更改 IIS 上的任何内容或与任何配置相关的情况下,这些网站开始要求用户手动输入他们的 Windows 凭据,这不应该发生。

我创建了一个新的 Blazor 应用并将搭建的应用部署到 IIS,这不需要输入 Windows 凭据。然后,我还将现有代码迁移到脚手架应用程序以测试可能的根本原因,并不断将更改逐步部署到 IIS。我最终将整个代码库移到了脚手架应用程序中,它仍然可以在不需要凭据的情况下工作。我们的应用程序部署在默认网站下,因此我删除了旧应用程序并创建了一个新应用程序,它再次开始要求提供凭据。

有人知道这可能是什么原因吗?

  • 为项目启用了 Windows 身份验证。
  • 在 IIS 上启用了 Windows 身份验证
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddSignalR(e => {
    e.MaximumReceiveMessageSize = 65536;
});

services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.AddAuthorization();

...

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

【问题讨论】:

  • “网站开始要求用户手动输入他们的 Windows 凭据”,您的意思是 Web 浏览器提示输入凭据吗?什么类型的浏览器?请记住,这是您在此类问题中绝不能错过的关键信息。
  • 在 IIS 中确认禁用匿名身份验证。
  • 匿名身份验证已禁用。是的,我的意思是它提示输入凭据。正常使用的是 Chrome,但我也使用 Edge 进行了测试(我之前从未使用 Edge 访问过该站点,所以这不会是缓存问题)。我还在另一台计算机上进行了测试,我以前从未访问过该站点或服务器,但它仍然提示输入凭据。
  • 文件夹的权限是否正确?如果没有,这可能会导致凭据提示,因为 Windows 凭据没有权限
  • 设置了权限,以便 IIS_IUSRS 需要访问文件夹以提供内容。如果该用户无权访问,则当您尝试访问该站点时 IIS 会抛出错误。所以访问是存在的。另外,我是管理员,所以默认情况下我对文件夹拥有更高的访问权限。

标签: c# .net iis blazor


【解决方案1】:

(老问题,但我想我会试一试……)

您是否尝试过将该站点添加到您计算机的 Internet 选项中的受信任站点?

转到 Internet 选项 --> 受信任的站点 --> 站点并输入完整的 URL,包括 https://

https://www.groovypost.com/howto/add-trusted-sites-in-the-windows-10-control-panel/

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多