簡體   English   中英

ASP.NET中的模擬和委派

[英]Impersonation and Delegation in ASP.NET

我在使用ASP.NET訪問遠程服務器上的文本文件時遇到問題。 ASP.NET 1.1應用程序使用模擬與請求者的Windows憑據在Server 2003上運行。 客戶端,Web服務器和遠程服務器都在同一個域中,並且用戶有權訪問該文本文件。 用戶可以通過UNC共享從其計算機打開文本文件。 當用戶運行直接在服務器上登錄的站點時,它可以正常工作。 但是,當用戶嘗試他們的機器時,它不起作用。 如何設置模擬以實現此功能?

編輯:應用程序的其他功能工作正常,它只是訪問無效的遠程文件。

聽起來你正在遇到多跳問題。 使用集成身份驗證時,可以從瀏覽器向IIS進行身份驗證。 但是,您無法對域中的任何其他計算機進行身份驗證。 原因是使用標准憑據,他們無法驗證您的身份。


我熟悉有兩個主要的解決方法:

  1. 實施Kerberos,這些證書允許您進行更高級的身份驗證,並允許多網絡躍點。
  2. 使用LogonUser win32 api重新模擬您的用戶(需要密碼)。

在IIS中,匿名和基本身份驗證都需要至少在應用程序文件夾中取消選中。 您可能想要檢查應用程序文件夾本身而不僅僅是根文件夾。 可能還有其他配置選項,但這是“低掛水果”選項。

作為測試,在模擬標記中指定用戶名和密碼,以強制應用程序始終以您知道有權訪問該文件的用戶身份進行模擬。

如果應用程序現在可以訪問文本文件,您將知道將用戶憑據傳輸到服務器。

如果應用程序STILL無法訪問文本文件,則憑據不是問題,並且存在服務器配置問題。

暫無
暫無

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

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