2008-08-24 121 views
0

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

我使用的是IIS 7

+0

登录失败的方式是什么?你有抛出异常(死亡的黄色屏幕)还是其他? – 2008-08-24 22:35:32

回答

0

在什么时候你插入你的登录/密码?你看过创建的桌子吗?虽然您的密码必须加密,但也许值得检查您的用户是否真正创建。

0

您在什么时候插入了您的登录名/密码?你看过创建的桌子吗?虽然您的密码必须加密,但也许值得检查您的用户是否真正创建。

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

Steve,您可以粘贴您的表单身份验证web.config部分,以及您正在使用的ASP.NET登录控件的任何相关代码。

没有足够的信息尚未这里排解:)

0

的web.config部分,是相当无用的,据我可以告诉:

<authentication mode="Forms" /> 

我看着在IIS 7中,并在身份验证部分说:匿名身份验证=启用,ASP.NET模拟=禁用,基本身份验证=禁用,窗体身份验证=禁用。

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

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

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

2

我猜(因为我没有IIS7方便的ATM),你需要关闭Anonomyous身份验证,并启用IIS7部分中的窗体身份验证。

0

Steve,

我不认为这个问题与您的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窗体身份验证更好的方法,但这应该让你开始工作。