0

我遇到了这种情况:我开发了我的第一个 Web ASP.NET 应用程序,但我不是将它上传到 IIS 的人;事实上,我对 IIS 及其配置一无所知。我的网络应用程序应该以这种方式工作:公司中的所有计算机都在域内,并使用检索 id 用户Environment.UserName然后在用户表中检查它,如果该用户具有 ADMIN 角色Default.aspx将重定向到管理页面,否则它将重定向到访客页面。

当我使用 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
4

1 回答 1

1

您必须禁用匿名访问,并在 IIS 上启用 Windows 身份验证,然后在web.config中设置:

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

这将使用户在通过 IIS 访问页面时被验证为 windows 用户。

于 2013-08-29T19:57:59.687 回答