簡體   English   中英

Windows 通過ADFS C#.NET認證后出現認證框 Web Forms App

[英]Windows authentication box appears after authenticating through ADFS C#.NET Web Forms App

我最近更新了一個舊的 4.5 C#.NET webforms 應用程序以使用 ADFS 進行身份驗證,但不知何故,它只有在我還在 IIS 中啟用 Windows 身份驗證時才有效。 當我啟用 windows 身份驗證時,用戶登錄我們的 ADFS 服務器后,會出現 Windows 身份驗證彈出框,需要用戶登錄兩次。 這不是我想要的結果,所以我關閉了 Windows 身份驗證,希望第二次登錄會 go 消失,但現在登錄 ADFS 后,用戶收到 401 Unauthorized 錯誤。

如果我必須保持 Windows 身份驗證啟用此舊版應用程序才能成功登錄,我是否應該在代碼中添加一些內容以防止 Windows 身份驗證彈出窗口在用戶登錄 ADFS 后出現?

啟動.Auth.cs

public partial class Startup
{
    private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
    private static string adfsMetadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];

    public void ConfigureAuth(IAppBuilder app)
    {
        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        app.UseCookieAuthentication(new CookieAuthenticationOptions());

        app.UseWsFederationAuthentication(
            new WsFederationAuthenticationOptions
            {
                Wtrealm = realm,
                MetadataAddress = adfsMetadata
            });

        // This makes any middleware defined above this line run before the Authorization rule is applied in web.config
        app.UseStageMarker(PipelineStage.Authenticate);
    }
}

啟動.cs

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
    }
}

更新:我剛剛確認我的開發站點工作正常——這意味着 Windows 身份驗證框在使用 ADFS 進行身份驗證后不會出現。 與實時相比,它具有相同的代碼、相同的 web.config、相同的設置在開發服務器上的 IIS 中,以及在 ADFS 服務器上的相同設置。 我能看到的唯一區別是實時服務器是Windows Server 2019 Datacenter而開發服務器是Windows Server 2012 R2

這兩個服務器之間是否存在差異會導致 Windows 身份驗證框在 ADFS 身份驗證后彈出? 難道舊版應用程序只能在舊版服務器上運行,而不能在較新的服務器上運行?

我剛剛在這里找到了我需要的答案: 401 Unauthorized: Access is denied due to invalid credentials

  1. 打開 IIS
  2. Select 網站
  3. 開放認證
  4. 編輯匿名身份驗證
  5. Select 應用程序池標識

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM