2014-01-15 57 views
5

我試圖使用Windows身份驗證我的應用程序,在測試中,我曾嘗試允許只有我自己,並拒絕所有其他Windows身份驗證使用戶無法正常工作

<authentication mode="Windows" /> 
<authorization> 
    <allow users="DomainName\nogariyap" /> 
    <deny users="*"/> 
</authorization> 

但它甚至給了我「Access Denied」錯誤我登錄到我的機器上使用相同的用戶"DomainName\nogariyap"

當我將其更改爲這個

<allow users="*" /> 

它的工作原理

我不知道爲什麼它不適用於特定的Windows用戶?

編輯

它,當我加入這system.webServer

<security> 
     <authentication> 
      <windowsAuthentication enabled="true" /> 
      <anonymousAuthentication enabled="false" /> 
     </authentication> 
     <authorization> 
      <remove users="*" roles="" verbs="" /> 
      <add users="DomainName\nogariyap" accessType="Allow"/> 
      <add users="?" accessType="Deny"/> 
     </authorization> 
    </security> 

strangly工作,但我不知道爲什麼它不與system.web的設置工作,是什麼在這些差別兩個設置?

回答

2

<system.web>是項目配置,<system.webserver>是服務器配置。兩者應該是兼容的,但建議似乎是使用服務器配置。它是在IIS7上推出的。有些在兩者之間的區別是:

  • 在system.webserver順序:
    • 拒絕規則會首先評估開始在父
    • 允許開始在父規則。
    • 規則集合中出現的順序

  • 的System.Web中的順序:
    • 較低級別的第一上升到父在外觀
    • 訂單規則集

  • 在Web服務器,你可以將規則應用於任何元素含義:圖片,文檔,而無需進一步的配置(加上每個擴展之間的映射要處理程序)
0
在第一次嘗試

你拒絕用戶=「*」意味着否認每個人。在第二次嘗試中,您拒絕了用戶=「?」含義未知用戶(未登錄)。

相關問題