2013-08-29 41 views
0

我遇到這種情況:我開發了我的第一個Web ASP.NET應用程序,但我不是那個將它上傳到IIS的人;實際上我對IIS及其配置一無所知。 我的網絡應用程序應該以這種方式工作: 公司中的所有計算機都在域內,並且使用Environment.UserName檢索id用戶,然後在用戶表中檢查它,並且如果該用戶具有ADMIN rol Default.aspx將重定向到管理頁面,否則會重定向到Guest頁面。IIS可以防止網絡用戶通過VB代碼檢索嗎?

當我使用Visual Studio進行調試但是將其複製到IIS站點文件夾時(它是否「發佈」?),它始終顯示訪客頁面。 由於某種原因objArea.searchRol(id)沒有找到「ADM」 是否有可能IIS配置阻止Windows身份驗證或類似的東西?

我的Default.aspx的Page_Load代碼:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     Dim objArea As New DataAccess.AreaDAO 
     Dim id As String = Environment.UserName 
     Dim rol As String = objArea.BuscarRol(id) 
     If rol = "ADM" Then 
     Response.Redirect("AdminPage.aspx") 
    Else 
     Response.Redirect("GuestPage.aspx") 
    End If 

    End Sub 

和所有其他頁有這樣的代碼來驗證用戶身份驗證:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     Dim objArea As New DataAccess.AreaDAO 
     Dim id As String = Environment.UserName 
     Dim rol As String = objArea.searchRol(id) 
     If rol <> "ADM" Then 
      Response.Redirect("GuestPage.aspx") 
     End If  

End Sub 

回答

1

你必須在IIS上禁用匿名訪問,並啓用Windows身份驗證,然後在web.config中設置:

<system.web> 
    <authentication mode="Windows"/> 
    <identity impersonate ="true"/> 
    <authorization> 
     <deny users="?"/> 
    </authorization> 
</system.web> 

這將mak e當通過IIS訪問頁面時,用戶將被認證爲Windows用戶。

+0

謝謝,還以爲它仍然不斷加載客人頁面。 – phalanx

+0

我不得不添加。它解決了它。 – phalanx