Windows身份验证 - 如何使用代码拒绝用户

时间:2013-08-06 02:38:43

标签: c# asp.net iis windows-authentication

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

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

编辑 - 重新解释问题

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

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

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