Nếu bạn là không sử dụng Active Directory, bạn có thể sử dụng một cái gì đó như thế này:
using System.Security;
using System.DirectoryServices.AccountManagement;
public struct Credentials
{
public string Username;
public string Password;
}
public class Domain_Authentication
{
public Credentials Credentials;
public string Domain;
public Domain_Authentication(string Username, string Password, string SDomain)
{
Credentials.Username = Username;
Credentials.Password = Password;
Domain = SDomain;
}
public bool IsValid()
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain))
{
// validate the credentials
return pc.ValidateCredentials(Credentials.Username, Credentials.Password);
}
}
}
Nếu bạn đang sử dụng Active Directory, bạn có thể sử dụng một cái gì đó như thế này:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// define a "query-by-example" principal - here, we search for a UserPrincipal
UserPrincipal qbeUser = new UserPrincipal(ctx);
// if you're looking for a particular user - you can limit the search by specifying
// e.g. a SAMAccountName, a first name - whatever criteria you are looking for
qbeUser.SamAccountName = "johndoe";
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// find all matches
foreach(var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
}
bạn đã xác nhận rằng chuỗi kết nối để có được đến máy chủ ldap đang làm việc? Bạn đang sử dụng directoryservices hoặc làm điều này với chế độ xác thực cửa sổ trong cấu hình ứng dụng hoặc tệp cấu hình web? – Brian
EXAMPLEMACHINE có phải là bộ điều khiển miền không? Nếu không, đó có thể là vấn đề của bạn. Tôi không biết liệu bạn có thể xác thực thông tin đăng nhập trên máy thông thường (nghĩa là không phải máy chủ) chỉ vì nó có thể hiển thị trên mạng hay không. Đó là những gì thông báo lỗi nói với bạn, tôi nghĩ vậy. – ken
Đó là vấn đề. Tôi không có bộ điều khiển miền. Tôi muốn xác thực thông tin đăng nhập trên một máy thông thường, chỉ vì nó hiển thị trên mạng. – Alexandru