c# - 事件目录 + HTTP 身份验证

标签 c# asp.net active-directory http-authentication

好吧,我正在开发一个内部使用的 asp.net 网络应用程序来跟踪我们的员工在校园里去了哪里以及他们在做什么。

我们目前为此使用一个系统,该系统使用“NoSQL”表(无论如何不是 100% 熟悉......)但它是使用 cgi 脚本的旧系统。所以我在 asp.net 中重写它,以某种方式更新系统,使其更现代,采用现代设计并为其添加事件目录身份验证,因为它使用自己的用户数据库,与我们在其他地方使用的 AD 分开。

我找到了一篇文章 enable Active Directory Authentication通过 web.config,但是,我宁愿不使用表单例份验证,而是想将其绑定(bind)到 HTTP-Prompt 中以进行身份​​验证。我已经尝试了一些 Google 搜索以尝试找到解决方案,但我似乎找不到以前做过这个的人。

提前致谢。

最佳答案

首先,如果您要使用域凭据对人员进行身份验证,则应确保使用 HTTPS,否则可以使用网络嗅探器轻松获取他们的密码。

好的,那么您所说的是 ASP.NET 中带有 IIS 基本身份验证的 Windows 身份验证模式。您需要在 web.config 中配置以下内容:

<configuration>
  <connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://your.ad.fqdn.com/DC=com,DC=fqdn,DC=ad,DC=your"/>
  </connectionStrings>
  <system.web>
    <membership defaultProvider="ADMembershipProvider">
      <providers>
        <add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" connectionUsername="MYNTDOMAIN\someuser" connectionPassword="asdf1234"/>
      </providers>
    </membership>
    <authentication mode="Windows"/>
  </system.web>
</configuration>

接下来您要为基本身份验证配置 IIS。假设您运行的是 IIS 7.x,在 IIS 管理器中找到应用程序的根文件夹,然后单击身份验证。您应该能够在此处启用基本身份验证。您还可以启用 Windows 身份验证以允许 IE/Chrome 用户自动登录:

Basic Authentication in IIS 7

关于c# - 事件目录 + HTTP 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810402/

相关文章:

c# - 为什么我得到 "Sequence contains no elements"?

c# - 为什么我的秒表会在 1 秒后继续重置

c# - 自定义错误重定向不起作用

ssl - 通过 udp 的事件目录 LDAP SSL

c# - 计数记录始终为 1

c# - 从另一个程序集自定义 wpf 用户控件的样式和模板

c# - 使用 WCF 接收大对象

c# - Azure Web App System.UnauthorizedAccessException 一旦部署到 Azure 就无法访问本地网络上的共享文件夹

c# - OU 时间戳 ComObject

azure - 使用客户的 Active Directory(Azure 或 ADFS)对 UWP 客户端和 .Net Core Web 应用程序进行身份验证