我正在使用纯HTML和CSS构建的网站,我需要一种方法来限制对站点内特定目录内的页面的访问。我想出的解决方案当然是ASP.NET Forms Authorization。我在表单中创建了默认的Visual Studio日志,并使用Visual Studio的向导设置了用户,角色和访问限制。问题是,我无法使用我设置的凭据登录网站。
我正在使用IIS 7。
答案 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中,但这应该可以帮助您入门。