首页 后端开发 C#.Net教程 Windows登录功能使用C#实现的示例

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

Aug 07, 2017 pm 01:09 PM
.net windows

这篇文章主要介绍了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#实现的示例的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

可以在 Windows 7 上安装 mysql 吗 可以在 Windows 7 上安装 mysql 吗 Apr 08, 2025 pm 03:21 PM

是的,可以在 Windows 7 上安装 MySQL,虽然微软已停止支持 Windows 7,但 MySQL 仍兼容它。不过,安装过程中需要注意以下几点:下载适用于 Windows 的 MySQL 安装程序。选择合适的 MySQL 版本(社区版或企业版)。安装过程中选择适当的安装目录和字符集。设置 root 用户密码,并妥善保管。连接数据库进行测试。注意 Windows 7 上的兼容性问题和安全性问题,建议升级到受支持的操作系统。

PS怎么拉垂直参考线 PS怎么拉垂直参考线 Apr 06, 2025 pm 08:18 PM

在 Photoshop 中拉垂直参考线:启用标尺视图(视图 > 标尺)。悬停鼠标在标尺垂直边缘,光标变为带有双箭头的垂直线后按住并拖动鼠标拉出参考线。通过拖动重新定位参考线,或将其悬停变为十字形后单击删除。

MySQL安装在特定系统版本上报错的解决途径 MySQL安装在特定系统版本上报错的解决途径 Apr 08, 2025 am 11:54 AM

MySQL安装报错的解决方法是:1.仔细检查系统环境,确保满足MySQL的依赖库要求,不同操作系统和版本需求不同;2.认真阅读报错信息,根据提示(例如缺少库文件或权限不足)采取对应措施,例如安装依赖或使用sudo命令;3.必要时,可尝试源码安装并仔细检查编译日志,但这需要一定的Linux知识和经验。最终解决问题的关键在于仔细检查系统环境和报错信息,并参考官方文档。

mysql 无法连接到本地主机怎么解决 mysql 无法连接到本地主机怎么解决 Apr 08, 2025 pm 02:24 PM

无法连接 MySQL 可能是由于以下原因:MySQL 服务未启动、防火墙拦截连接、端口号错误、用户名或密码错误、my.cnf 中的监听地址配置不当等。排查步骤包括:1. 检查 MySQL 服务是否正在运行;2. 调整防火墙设置以允许 MySQL 监听 3306 端口;3. 确认端口号与实际端口号一致;4. 检查用户名和密码是否正确;5. 确保 my.cnf 中的 bind-address 设置正确。

无法从终端访问 mysql 无法从终端访问 mysql Apr 08, 2025 pm 04:57 PM

无法从终端访问 MySQL 可能是由于:MySQL 服务未运行;连接命令错误;权限不足;防火墙阻止连接;MySQL 配置文件错误。

mySQL下载完安装不了 mySQL下载完安装不了 Apr 08, 2025 am 11:24 AM

MySQL安装失败的原因主要有:1.权限问题,需以管理员身份运行或使用sudo命令;2.依赖项缺失,需安装相关开发包;3.端口冲突,需关闭占用3306端口的程序或修改配置文件;4.安装包损坏,需重新下载并验证完整性;5.环境变量配置错误,需根据操作系统正确配置环境变量。解决这些问题,仔细检查每个步骤,就能顺利安装MySQL。

mysql下载时提示磁盘写入错误如何处理 mysql下载时提示磁盘写入错误如何处理 Apr 08, 2025 am 11:51 AM

MySQL下载提示磁盘写入错误,解决方案如下:1.检查磁盘空间是否不足,清理空间或更换更大磁盘;2.使用磁盘检测工具(如chkdsk或fsck)检查并修复磁盘错误,必要时更换硬盘;3.检查目标目录权限,确保用户账户拥有写入权限;4.更换下载工具或网络环境,使用下载管理器恢复中断下载;5.暂时关闭反病毒软件或防火墙,下载完成后重新启用。通过系统排查这些方面,即可解决问题。

MySQL安装后服务无法启动的解决办法 MySQL安装后服务无法启动的解决办法 Apr 08, 2025 am 11:18 AM

MySQL拒启动?别慌,咱来排查!很多朋友安装完MySQL后,发现服务死活启动不了,心里那个急啊!别急,这篇文章带你从容应对,揪出幕后黑手!读完后,你不仅能解决这个问题,还能提升对MySQL服务的理解,以及排查问题的思路,成为一名更强大的数据库管理员!MySQL服务启动失败,原因五花八门,从简单的配置错误到复杂的系统问题都有可能。咱们先从最常见的几个方面入手。基础知识:服务启动流程简述MySQL服务启动,简单来说,就是操作系统加载MySQL相关的文件,然后启动MySQL守护进程。这其中涉及到配置

See all articles