0

我正在尝试将表单身份验证配置为密码保护文件夹。即使凭据正确,它当前也没有登录任何用户。

这是我的代码...

网络配置:

<authentication mode="Forms">
  <forms name=".ASPXAUTH" loginUrl="login.aspx" protection="All" timeout="999999">
    <credentials passwordFormat="MD5">
      <user name="admin" password="passwordhashhere" />
    </credentials>
  </forms>
</authentication>
<authorization>
  <allow users="?" />
</authorization>

然后在最后一个 system.web 之外:

<location path="Admin">
  <system.web>
    <authorization>
      <allow users="admin" />
      <deny users="*" />
    </authorization>
  </system.web>
</location>

然后在我的aspx中:

<div class="user">
    <p>Username:</p>
    <br />
    <asp:TextBox ID="TextBoxUser" runat="server"></asp:TextBox>
</div>

<div class="pass">
    <p>Password:</p>
    <br />
    <asp:TextBox ID="TextBoxPass" runat="server" TextMode="Password"></asp:TextBox>
</div>

<div class="login">   
    <asp:Button ID="ButtonLogin" runat="server" Text="Log In" />
    <asp:Label ID="LabelError" runat="server" Text=""></asp:Label>
</div>

然后在我的代码隐藏中:

Protected Sub ButtonLogin_Click(sender As Object, e As System.EventArgs) Handles ButtonLogin.Click
    If Membership.ValidateUser(TextBoxUser.Text, TextBoxPass.Text) Then
        If Request.QueryString("ReturnUrl") IsNot Nothing Then
            FormsAuthentication.RedirectFromLoginPage(TextBoxUser.Text, False)
        Else
            FormsAuthentication.SetAuthCookie(TextBoxUser.Text, False)
        End If
    Else
        LabelError.Text = "Invalid UserID and Password"
    End If
End Sub
4

1 回答 1

1

尝试

<deny users="?" />

而不是<deny users="*" />在你的第二个代码块中......

并且

<allow users="*" />

而不是<allow users="?" />在第一个代码块中或不需要..

于 2012-08-29T07:07:40.610 回答