我有一个 Web 应用程序,将托管在 Intranet IIS 服务器中。要求是登录端点应执行 LDAPS 身份验证。在本地开发环境中一切顺利。但是,当将其放置在实时 IIS 服务器或我的本地 IIS 服务器中时,它会提示登录,如下图所示:
我不希望这种事发生。我将允许来自任何 Windows 用户的请求,我的身份验证端点将负责处理。
我应该在哪里进行更改?是在我的 .NET6 Web api 代码中还是需要更改 IIS 服务器设置?
我在 IIS 中执行的步骤: --首先,我在管理模式下启动了本地 IIS 服务器。
但是,登录提示仍然存在。
3)在互联网上我找到了一些解决方案,说,转到控制面板=> Internet选项=> Internet => 身份验证登录=> 选择使用当前用户和密码验证登录
上述步骤对我来说也不起作用。
我处理 CORS 和 Windows 身份验证的 .net6 program.cs 代码是:
//c# .net6 code
var builder = WebApplication.CreateBuilder(args);
var corsOrigins = builder.Configuration["Cors:origins"].Split(",");//Taking origins from config. file
var corsMethods = builder.Configuration["Cors:methods"].Split(",");
builder.Services.AddCors(options =>
{
options.AddDefaultPolicy(builder =>
{
builder.WithOrigins(corsOrigins)
.AllowAnyHeader()
.WithMethods(corsMethods)
.AllowCredentials();
});
});
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
.AddNegotiate();
builder.Services.AddAuthorization(options =>
{
// By default, all incoming requests will be authorized according to the default policy.
options.FallbackPolicy = options.DefaultPolicy;
});
我在 IIS 中所做的更改也显示在图像中。另外,我在 IIS 中没有任何角色/组。
最后,我想要的是我不想在我的 API 端点上触发自动登录事件。身份验证端点已通过识别用户的 Windows 身份并执行 LDAPS 来处理要处理的实际身份验证逻辑。
请帮助我解决这个问题。
我在 IIS 中执行的步骤:
--首先,我在管理模式下启动了本地 IIS 服务器。
- 在我的网站中,我单击“身份验证”=> 匿名身份验证=已禁用=> Windows 身份验证=已启用;
这里需要理解的是 Windows 身份验证是 而不是 LDAPS 身份验证。您想要允许表单身份验证。这将让您使用允许用户登录的Form 构建自己的登录页面。然后,您还必须授予匿名访问登录页面的权限。