ASP.NET Forms授权

时间:2008-08-24 22:14:44

标签: asp.net iis-7

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

我正在使用IIS 7。

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您在什么时候插入了登录名/密码?您是否看过创建的表格?虽然你的密码必须加密,但是值得检查一下你的用户是否真的被创建了。

答案 2 :(得分:0)

  

您在什么时候插入了登录名/密码?您是否看过创建的表格?虽然你的密码必须加密,但是值得检查一下你的用户是否真的被创建了。

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

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

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

答案 3 :(得分:0)

据我所知,web.config部分非常无用:

<authentication mode="Forms" />

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

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

目前,通过显示失败文本中的日志来登录失败。

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

答案 4 :(得分: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中,但这应该可以帮助您入门。