我之前有做过类似的事情。
您需要配置 IIS 启用 Windows 身份验证。
如果他们的 AD 帐户与 Web 应用程序中的标识匹配(或者只需在身份验证数据库中添加一个 AD ID 列),则可以从其用户名中删除域,然后将其与身份验证数据库进行验证。
我们有一个人力资源数据库,用于跟踪员工及其职称,基于此数据库中包含的数据,我们允许在应用程序中特定的权限:
我们公司仍在使用 Active Directory 2003,因此无法管理凭据而需找到创造性的解决方案。
以下是我的代码:
//找出 Active Directory 用户是谁
var username = Convert.ToString(User.Identity.Name);
// strip the domain
username = Regex.Replace(username, "DOMAIN", "");
username = Regex.Replace(username, "\\\\", "");
var first_initial = username[0];
var last_initial = username[1];
//The Ative directory structure is [first initial firstname][first inital lastname][badge number]
var EIN = Regex.Replace(username, "[^0-9]", "");//get the badge number so we can query the badging database
// check the employee database to see if this AD account matches something
var query = "SELECT BadgeNumber, FirstName, LastName, DEPT_NUM, DEPT, TITLE, Supervisor " +
"FROM TABLE_WITH EMPLOYEE INFORMATION " +
"WHERE LEFT(FirstName, 1) = '" + first_initial + "' AND LEFT(LastName, 1) = '" + last_initial + "' AND BadgeNumber = '" + EIN + "' AND STATUS = 'Active' ";