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

我正在使用IIS 7。

===============>>#1 票数:2

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

===============>>#2 票数:0

您什么时候插入了登录名/密码? 您是否查看了在哪里创建的表? 尽管您的密码必须加密,但是值得检查一下您的用户是否真正被创建。

===============>>#3 票数:0

您什么时候插入了登录名/密码? 您是否查看了在哪里创建的表? 尽管您的密码必须加密,但是值得检查一下您的用户是否真正被创建。

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

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

没有足够的信息来进行故障排除:)

===============>>#4 票数:0

据我所知,web.config部分几乎没有用:

<authentication mode="Forms" />

我查看了IIS 7,在“身份验证”部分中说:匿名身份验证=启用,ASP.NET模仿=禁用,基本身份验证=禁用,表单身份验证=禁用。

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

当前,通过显示登录失败文本来使登录失败。

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

===============>>#5 票数: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中相比,有更好的方法来实现表单身份验证,但这应该可以帮助您入门。

  ask by Steve translate from so

未解决问题?本站智能推荐: