Asp.net

文件夾中的 web.config 允許全部或不進行使用者身份驗證

  • October 22, 2021

我有一個包含幾個調查 aspx 頁面的文件夾。我必須在這些 aspx 頁面上設置權限。有 5 個不同的頁面,只有一個允許某些使用者訪問。我添加了一個 web.config 文件來允許和拒絕使用者,但它不起作用。如果我允許我的使用者名並添加一個deny="?"我無權訪問,但如果我添加另一個使用者,請刪除我的使用者名並刪除拒絕選項,我將獲得登錄系統的權限。如果我取消拒絕,我可以獲得訪問權限,但是所有使用者都可以訪問該頁面。

添加我的使用者憑據並拒絕我無法訪問的所有匿名使用者。有人可以指出我做錯了什麼的正確方向嗎?可能是它沒有讀取或獲取我的 Windows 登錄憑據嗎?我正在使用 Visual Studio 2012,實體框架。

這就是我所做的:

  //Web Config that allows and denies:
  <?xml version="1.0"?>
       <configuration>
       <system.web>
   <authorization>
     <allow users="*" />
   </authorization>
    </system.web>

   <location path="QualityCheckSurvey.aspx">
   <system.web>
     <authorization>
       <allow users="DomainName\User2" />
       <deny users="?" /> 
     </authorization>
   </system.web>
   </location>
   </configuration>

我已將身份驗證模式設置為 windows。

編輯似乎權限設置不正確。但它仍然無法正常工作。當我拒絕 *,但允許 USER1 時,即使提示登錄請求,使用者也無法訪問。即使使用者有權訪問,登錄視窗對話框也會不斷彈出 3 次。讓它否認?(匿名)允許每個人都可以訪問,即使我取消了拒絕並且只有 USER1 的允許標籤,其餘使用者仍然可以訪問……我現在在本地執行,但即使在 IIS 上設置那裡的身份驗證(Windows 和基本身份驗證)完全相同….

編輯這是我正在使用的實際程式碼。此路徑“”中只允許 3 個使用者。此 web.config 文件位於包含 5 種不同類型調查的調查文件夾中。只有這一項調查應該允許某些使用者,其餘的調查任何人都可以訪問….

    <?xml version="1.0"?>
<configuration>
 <system.web>
   <authorization>
     <allow users="*"/>
   </authorization>
 </system.web>

 <location path="QualityCheckSurvey.aspx">
   <system.web>

     <authorization>
       <deny users="?" />
       <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
       <deny users="*" />
     </authorization>

   </system.web>
 </location> 

在應用程序根目錄的主 web.cofin 中,我將身份驗證模式設置為 windows:

    <authentication mode="Windows">

<!--<forms loginUrl="~/Account/Login.aspx" timeout="2880" />-->
   </authentication>

在您的問題上,您說您有一個文件夾名稱,但在 web.config 上您只給出了路徑上的文件名。使用文件夾名/文件名.aspx,如下所示。使用拒絕使用者=“*”而不是拒絕使用者=“?”

<location path="foldername/QualityCheckSurvey.aspx">
   <system.web>
       <authorization>
           <allow users="DomainName\User2"/>
           <deny users="*"/>
       </authorization>
   </system.web>
</location>

編輯

這看起來像您在同一個應用程序中有多個 web.config 文件。為避免混淆,只需刪除調查文件夾和根文件夾 web.config 上的那個,添加此程式碼。

<?xml version="1.0"?>
<configuration>
 <system.web>
   <authorization>
     <authentication mode="Windows" />
   </authorization>
 </system.web>

 <location path="survey/QualityCheckSurvey.aspx">
   <system.web>
     <authorization>
       <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
       <deny users="*" />
     </authorization>
   </system.web>
 </location> 

我假設調查文件夾位於根文件夾內。

引用自:https://stackoverflow.com/questions/18207949