C# 使用API检查域用户名和密码是否正确

添加引用:

using System.Runtime.InteropServices;

    public class VerifyUserByDomain
    {
        private static int LOGon32_LOGon_INTERACTIVE = 2;
        private static int LOGon32_PROVIDER_DEFAULT = 0;
        private static IntPtr tokenHandle = new IntPtr(0);


        [DllImport("advapi32.dll")]
        private static extern bool LogonUser(string lpszUsername,
            string lpszDomain,
            string lpszPassword,
            int dwLogonType,
            int dwLogonProvider,
            ref IntPtr phToken);


        public static bool verify(string userName, string pwd, string domain)
        {
            bool boolResult = false;
            tokenHandle = IntPtr.Zero;
            //使用域密码登录
            boolResult = LogonUser(userName, domain, pwd, LOGon32_LOGon_INTERACTIVE, LOGon32_PROVIDER_DEFAULT, ref tokenHandle);
            return boolResult;
        }

 在Windows应用程序中调用方式:

bool a = Comm.VerifyUserByDomain.verify(Environment.UserName, textBox2.Text.Trim(), Environment.UserDomainName);

posted on 2017-02-14 12:17  jack_Meng  阅读(3011)  评论(0编辑  收藏  举报

导航