3

我的 Windows 身份验证正在使用 IIS7,但现在我想根据我在 SQL 服务器中的数据拒绝特定用户。

我知道我可以发送信息访问被拒绝,但我想向用户发送 Windows 登录表单以输入不同的凭据,以便 IIS 可以验证新凭据并将其发送到 c# 以再次授权用户。

编辑 - 重新表述问题

我想同时使用 Windows 身份验证和基于数据库数据的身份验证。首先,我希望通过 Windows 身份验证对用户进行身份验证,然后应用程序将对用户进行身份验证。但我的问题是,如果应用程序拒绝用户,那么我希望 Windows 身份验证对话框向用户显示 Windows 凭据以从头开始该过程。

4

2 回答 2

0

如果要使用数据库中的信息进行身份验证,则必须使用表单身份验证。您必须采取的步骤是:

  • 建立一个登录网页(本例中为 login.aspx)
  • 将其放在您的 web.config 中,以指定登录页面并最初拒绝所有用户的访问:

代码:

<authentication mode="Forms">
  <!-- Login.aspx is the login page forms authentication should use. -->
  <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" timeout="30" slidingExpiration="true" >
  </forms>
</authentication>
<authorization>
  <!-- deny all users access to ressources of this app, if not logged in. -->
  <deny users="?" />
</authorization>
  • 在您的登录页面中,在后面的代码中,调用它以让用户通过:

代码:

FormsAuthentication.SetAuthCookie("UserName", False)
于 2013-08-06T12:34:45.383 回答
0

您可以执行的一种方法是创建自己的登录表单并使用 LDAP 查询对用户进行身份验证。

因此,最初它通过 Windows 身份验证对用户进行身份验证,如果其他条件不满足用户访问权限,您可以发送自己的登录表单并使用 LDAP 查询对用户进行身份验证。

于 2013-08-06T16:32:35.570 回答