web.config를 엽니 다. 당신이 당신의 ActiveDirectory에 대한 ConnectionString을해야합니다 모든
먼저 다음 <membership>
태그 아래
<connectionStrings>
...
<add name="ADConnectionString" connectionString=LDAP://*adserver*/DC=*domain* />
...
</connectionStrings>
스크롤합니다.
<membership defaultProvider="SimpleMembershipProvider">
그런 다음 <providers>
내부 AD 회원을위한 새로운 공급자를 추가 : Web.config를 위해 트릭을 할해야
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" />
당신처럼 <membership>
설정 defaultProvider 특성이 있는지 확인합니다. 이제 로그인 할 때 AD 사용자를 인증해야합니다. AccountController 로그인 작업으로 이동하십시오. 먼저 ActiveDirectory를 통해 사용자를 인증하려고 시도합니다. PrincipalContext
이라는 편리한 클래스가 System.DirectoryServices.AccountManagement
네임 스페이스에 있습니다. 당신 나중에 요구 사항은
public ActionResult Login(LoginModel model, string returnUrl)
{
try
{
// try to auth user via AD
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain))
{
if (pc.ValidateCredentials(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, false);
return RedirectToAction("Index", "Home");
}
}
// try the default membership auth if active directory fails
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, false);
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "Login failed");
}
}
catch
{
}
GetErrorsFromModelState();
return View(model);
}
당신이 현재는 UserPrincipal 클래스 ActiveDirectory에 로그인 한 사용자가 얻을 수 있습니다 :
using (var context = new PrincipalContext(ContextType.Domain))
{
using (var aduser = UserPrincipal.FindByIdentity(context,IdentityType.SamAccountName, HttpContext.User.Identity.Name))
{
...
}
}
희망이 도움이 나는 놓치지 않았다가 실패하면 우리는 기본 멤버 자격 공급자를 사용 아무것도.