关于windows中的AD验证问题...50+50追加分

来源:百度知道 编辑:UC知道 时间:2024/07/07 03:04:34
最近碰到一个问题,是关于WINDOWS中AD验证的问题,就是我用.NET做一个简单的登陆验证。usern:和password 再点登陆,相信大家都知道,现在的问题出来,我验证不是在SQL建一个登陆表,成功了就让登陆的用户进入主页面,失败了就让用户返回登陆框,再次比对,相信大家都会推荐我用票据来做,但我现在验证的是本机的AD在网上也参考了不少资料,现在想用LOGON32_API来实现这个功能, const int LOGON32_LOGON_INTERACTIVE = 2;
const int LOGON32_LOGON_NETWORK = 3;
const int LOGON32_LOGON_BATCH = 4;
const int LOGON32_LOGON_SERVICE = 5;
const int LOGON32_LOGON_UNLOCK = 7;
const int LOGON32_LOGON_NETWORK_CLEARTEXT = 8;
const int LOGON32_LOGON_NEW_CREDENTIALS = 9;
const int LOGON32_PROVIDER_DEFAULT = 0;

[DllImport("advapi32.dll", SetLastError = true)]
public static extern int LogonUser(
string lpszUsername,
string lpszDomain,
string lpszPassword,
int dwLogonType,
int dwLogonProvider,
out IntPtr phToken
就是类似像这样的... 希望.NET高手能教小弟如何实现用简单的登陆实现上述我说的

Membership
或者使用以下代码:
private bool IsAuthenticated(String server,String port,String path, String username, String pwd)
{
String domainAndUsername = username;
DirectoryEntry entry;
if (port != String.Empty)
{
entry = new DirectoryEntry("LDAP://" + server + "/" + path, "ITSC\\"+domainAndUsername, pwd);
}
else
{
entry = new DirectoryEntry("LDAP://" + server + ":" + port + "/" + path, domainAndUsername, pwd);
}
try
{
Object obj = entry.NativeObject;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + username + ")";
search.PropertiesToLoad.Add("cn");
SearchResult result = search.Fin