首页后端开发ASP.NETWindows登录功能使用C#实现的示例

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

时间2024-01-30 15:39:03发布访客分类ASP.NET浏览176
导读:收集整理的这篇文章主要介绍了Windows登录功能使用C#实现的示例,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要介绍了C#实现的WINDOWS登录功能,结合实例形式分析了简单的Windows图形化登陆功能实现技巧,需要的朋...
收集整理的这篇文章主要介绍了Windows登录功能使用C#实现的示例,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要介绍了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#实现的示例的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

csharpWindows

若转载请注明出处: Windows登录功能使用C#实现的示例
本文地址: https://pptw.com/jishu/592711.html
C#如何连接加密数据库(Sqlite)的示例分享 C#编程如何获取电脑硬件信息的方法?

游客 回复需填写必要信息