![](/img/trans.png)
[英].Net Core 3.1 react application with identity authentication - 403 Error Access is denied using provided credentials
[英].NET Core and IIS Intermittent 403 Access Denied
好的 Stackoverflow,經過多次徒勞的研究,我終於到了這里!
我正在嘗試使用 Windows 身份驗證和 SSL 從 IIS 托管一個 .NET Core 2.0 站點,無論我嘗試什么,我都會繼續收到不一致/間歇性的 403 拒絕訪問錯誤。
如果出了什么問題,我希望它永遠不會奏效。 但是,如果我重新啟動站點和應用程序池,它可能會工作約 3/10 次。 我在事件查看器、應用程序日志或 IIS 跟蹤日志中找不到任何有用的信息。
我所做的事情沒有特定的順序:
還有一個細節是,我正在嘗試與來自不同域的用戶進行身份驗證,其中設置了單向信任。 我正在使用來自“其他”域的憑據遠程訪問主機,因此它具有可見性。
這是我的 web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MCP.MVP.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="true" startupTimeLimit="3600" requestTimeout="23:00:00" />
<defaultDocument>
<files>
<add value="/home/index" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
<!--ProjectGuid: [REDACTED] -->
來自 Startup.cs:
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.Configure<IISOptions>(options =>
{
options.AutomaticAuthentication = true;
});
來自 Program.cs
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
在任何地方使用 Authorize 屬性:
[Authorize(Policy = "RequireViewerRole")]
授權膠水,其中 Configuration["RequireViewerRoles"] 是一個以逗號分隔的域組列表:
services.AddAuthorization(options =>
{
options.AddPolicy("RequireViewerRole", policy => policy.RequireRole(Configuration["RequireViewerRoles"].Split(',')));
});
我是否進入了 .NET Core 2.0 錯誤領域,或者我錯過了什么?
原來是一條巨大的紅鯡魚!
這是一個 401.2“無效的服務器配置”錯誤。 我終於注意到一個模式,如果我打開文件夾安全權限對話框,應用程序將工作,這將強行點擊域控制器並緩存來自用戶域的組名。 應用程序可以正常工作大約 5 分鍾,然后拒絕再次進行身份驗證而不進行其他更改。
問題是通過在組上配置域名解決的,回想起來很明顯。 (域名\\\\域用戶)。 它在沒有域名的情況下工作的事實導致了很多混亂。 IIS 日志中沒有任何跡象表明此錯誤,最終通過反復試驗解決了該錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.