Kiểm tra lớp ngữ cảnh chính. Bạn có thể tạo nó bằng cách sử dụng ngữ cảnh cục bộ (Máy) hoặc miền và sử dụng phương thức ValidateCrentials (tên người dùng chuỗi, mật khẩu chuỗi) để xác thực bằng cách sử dụng thông tin đăng nhập Windows.
http://msdn.microsoft.com/en-us/library/bb154889.aspx
Đây là cách tôi đã sử dụng nó trong trang web của mình. (Đặt điều này trong phương thức POST của bộ điều khiển xác thực của bạn hoặc một cái gì đó)
Mã bên dưới sẽ lấy tên người dùng là "bob" hoặc "localhost \ bob" hoặc "DOMAIN \ bob" v.v ... và nhận được đúng PrincipalContext cho xác thực người dùng. LƯU Ý: trường hợp của nó không nhạy cảm ở đây.
public bool ValidateCredentials(string username, System.Security.SecureString password)
{
string domain = Environment.MachineName;
if (username.Contains("\\"))
{
domain = username.Split('\\')[0];
username = username.Split('\\')[1];
}
if (domain.Equals("localhost", StringComparison.CurrentCultureIgnoreCase))
domain = Environment.MachineName;
if (domain.Equals(Environment.MachineName, StringComparison.CurrentCultureIgnoreCase))
using (PrincipalContext context = new PrincipalContext(ContextType.Machine))
{
return context.ValidateCredentials(username, password.ToUnsecureString());
}
else
using(PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
//return context.ValidateCredentials(domain + "\\" + username, password.ToUnsecureString());
return context.ValidateCredentials(username, password.ToUnsecureString());
}
}
Tôi thực sự hy vọng cho một trang web mẫu – stuck
lol họ đã có những cái tên rất nhiều cho điều này, tôi chắc chắn rằng nó thật khó để theo dõi. Họ sử dụng để tính phí một số tiền nhất định mỗi năm cho các trang web để sử dụng nó, và nó không phải là rất phải chăng cho chúng tôi guys ít. Tôi tự hỏi nếu nó miễn phí ngay bây giờ với sự gia tăng của facebook, vv – ps2goat