0

我正在开发一个使用纯 HTML 和 CSS 构建的网站,我需要一种方法来限制对位于网站内特定目录中的页面的访问。我想出的解决方案当然是 ASP.NET Forms Authorization。我创建了默认的 Visual Studio 登录表单,并使用 Visual Studio 的向导设置了用户、角色和访问限制。问题是,我无法使用我设置的凭据登录网站。

我正在使用 IIS 7。

4

5 回答 5

2

我猜(因为我没有 IIS7 方便的 ATM)您需要关闭 Anonomyous Auth,并在 IIS7 部分中启用 Forms Auth。

于 2008-08-25T02:58:58.027 回答
0

您在什么时候输入了您的登录名/密码?您是否查看了在哪里创建的表?尽管您的密码必须加密,但也许值得检查您的用户是否实际创建。

于 2008-08-24T22:36:46.380 回答
0

您在什么时候输入了您的登录名/密码?您是否查看了在哪里创建的表?尽管您的密码必须加密,但也许值得检查您的用户是否实际创建。

表单身份验证不需要任何形式的用户数据库。

史蒂夫,您能否将您的表单身份验证 web.config 部分粘贴到您正在使用的 ASP.NET 登录控件的任何相关代码中。

这里还没有足够的信息来解决问题:)

于 2008-08-24T22:52:53.830 回答
0

据我所知,web.config 部分毫无用处:

<authentication mode="Forms" />

我查看了 IIS 7,在身份验证部分显示:匿名身份验证 = 启用,ASP.NET 模拟 = 禁用,基本身份验证 = 禁用,表单身份验证 = 禁用。

此外,除了将 Login 对象拖到设计器上并将其指向的页面更改为 index.html 之外,我没有对代码进行任何更改。

目前,通过显示登录失败文本登录失败。

编辑:早些时候,当我尝试直接导航到受限制的页面时,我会收到一个蓝页,说我没有足够的权限。现在,即使我的匿名访问被拒绝,我也可以在不登录的情况下看到被限制的页面。

于 2008-08-24T23:34:52.450 回答
0

史蒂夫,

我认为问题不在于您的 IIS 设置。由于表单身份验证不依赖于 IIS 身份验证,因此如果您打算在 ASP.NET 应用程序中使用表单身份验证,则应在 IIS 中为您的应用程序配置匿名访问。

在你的 web.config 中试试这个:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="~/login.aspx" defaultUrl="~/">
        <credentials passwordFormat="Clear">
          <user name="YourUsername" password="superSecret" />
        </credentials>
      </forms>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>
  <system.web>
</configuration>

有更好的方法来实现表单身份验证,而不是将用户名和密码硬编码到您的 web.config 中,但这应该可以帮助您入门。

于 2009-05-16T09:36:07.390 回答