Windows登录功能使用C#实现的示例

互联网 17-8-7
这篇文章主要介绍了C#实现的WINDOWS登录功能,结合实例形式分析了简单的Windows图形化登陆功能实现技巧,需要的朋友可以参考下

本文实例讲述了C#实现的WINDOWS登录功能。分享给大家供大家参考,具体如下:

using System;  using System.Data;  using System.Configuration;  using System.Collections;  using System.Web;  using System.Web.Security;  using System.Web.UI;  using System.Web.UI.WebControls;  using System.Web.UI.WebControls.WebParts;  using System.Web.UI.HtmlControls;  using System.Runtime.InteropServices;  using System.Security.Principal;  namespace yutest  {    public partial class _Default : System.Web.UI.Page    {      [DllImport("advapi32.dll", CharSet = CharSet.Auto)]      public static extern bool LogonUser(string lpszUsername,string lpszDomain,string lpszPassword,int dwLogonType,int dwLogonProvider,out int phToken);      protected void Page_Load(object sender, EventArgs e)      {        string aaa = System.Threading.Thread.CurrentPrincipal.Identity.Name;        //string bbb = System.Threading.Thread.CurrentPrincipal.Identity.n;        //System.Environment.UserDomainName        //System.Environment.UserName      }      protected void Button1_Click(object sender, System.EventArgs e)      {        //验证用户的输入是否为空        if (tDomain.Text.Trim().Length > 0 && tUserName.Text.Trim().Length > 0&& tPassword.Text.Trim().Length > 0)        {  //调用函数Login(string UserName, string Password, string Domain)          //实现Windows登录          if (Login(tUserName.Text.Trim(), tPassword.Text.Trim(),tDomain.Text.Trim()) == true)          {  //显示登录成功信息            LoginMsg.Text = "登录成功!!!";            LoginMsg.Visible = true;            return;          }          else          {  //显示登录失败信息            LoginMsg.Text = "登录失败,请重新输入用户名称、密码及其系统域名!!!";            LoginMsg.Visible = true;          }        }      }      private bool Login(string UserName, string Password, string Domain)      {    //获取用户名称和系统域名        string text1 = Domain.Trim();        string text2 = UserName.Trim();        text2 = text2.Replace("/", @"\");   //处理符号“/”        int num1 = text2.IndexOf('\\');    //获取符号“\”的索引        if (num1 != -1)        {  //格式化用户名称和系统域名          text1 = text2.Substring(0, num1);          text2 = text2.Substring(num1 + 1);        }        else        {  //格式化用户名称和系统域名          num1 = text2.IndexOf('@');          if (num1 != -1)          {            text1 = text2.Substring(num1 + 1);            text2 = text2.Substring(0, num1);          }        }        //调用函数AuthenticateUser()实现用户Windows登录        return AuthenticateUser(text2, Password.Trim(), text1);      }      private bool AuthenticateUser(string UserName, string Password,string Domain)      {       //设置用户登录成功的标志        bool flag1 = false;        try        {          int num1; IntPtr ptr1;          //调用Windows登录的API          if (!LogonUser(UserName, Domain, Password, 2, 0, out num1))          {  //返回登录结果            return flag1;          }          //调用.NET中的Windows登录          ptr1 = new IntPtr(num1);          WindowsIdentity identity1 = new WindowsIdentity(ptr1);          WindowsPrincipal principal1 = new WindowsPrincipal(identity1);          HttpContext.Current.User = principal1;          //设置系统Cookie和重定向页面          FormsAuthentication.SetAuthCookie(principal1.Identity.Name, false);          FormsAuthentication.RedirectFromLoginPage(UserName, false);          flag1 = true;        }        catch (Exception) { }        return flag1;      }    }  }

以上就是Windows登录功能使用C#实现的示例的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: csharp
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:C#如何连接加密数据库(Sqlite)的示例分享

相关资讯