C#实现的WINDOWS登录功能示例
发布时间 - 2026-01-11 02:37:50 点击率:次本文实例讲述了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;
}
}
}
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#程序设计之线程使用技巧总结》、《C#数据结构与算法教程》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。
# C#
# WINDOWS
# 登录
# C#实现判断当前操作用户管理角色的方法
# c# 将Minio.exe注册成windows服务
# C#用Topshelf创建Windows服务的步骤分享
# C#开发windows服务实现自动从FTP服务器下载文件
# C#对Windows服务组的启动与停止操作
# C#编写Windows服务程序详细步骤详解(图文)
# C# 屏蔽由于崩溃弹出的windows异常弹框
# 使用C#创建Windows服务的实例代码
# C# WindowsForm程序同时启动多个窗口类
# 使用C#实现Windows组和用户管理的示例代码
# 程序设计
# 相关内容
# 感兴趣
# 数据结构
# 给大家
# 更多关于
# 用户登录
# 所述
# 使用技巧
# 面向对象
# 为空
# 重定向
# 重新输入
# 讲述了
# bool
# extern
# static
# lpszUsername
# string
# LogonUser
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
黑客如何通过漏洞一步步攻陷网站服务器?
PythonWeb开发入门教程_Flask快速构建Web应用
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
高端云建站费用究竟需要多少预算?
深圳网站制作培训,深圳哪些招聘网站比较好?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
怎么用AI帮你设计一套个性化的手机App图标?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
佛山企业网站制作公司有哪些,沟通100网上服务官网?
Laravel如何使用Sanctum进行API认证?(SPA实战)
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
深入理解Android中的xmlns:tools属性
Laravel如何实现模型的全局作用域?(Global Scope示例)
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
高防服务器租用指南:配置选择与快速部署攻略
Laravel如何实现用户密码重置功能?(完整流程代码)
大型企业网站制作流程,做网站需要注册公司吗?
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel如何实现数据库事务?(DB Facade示例)
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
JavaScript数据类型有哪些_如何准确判断一个变量的类型
如何续费美橙建站之星域名及服务?
Laravel如何处理异常和错误?(Handler示例)
如何用VPS主机快速搭建个人网站?
Laravel如何处理表单验证?(Requests代码示例)
Laravel中的Facade(门面)到底是什么原理
网站优化排名时,需要考虑哪些问题呢?
javascript读取文本节点方法小结
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
如何用PHP工具快速搭建高效网站?
中山网站制作网页,中山新生登记系统登记流程?
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel如何配置和使用缓存?(Redis代码示例)
如何将凡科建站内容保存为本地文件?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Bootstrap整体框架之JavaScript插件架构
简单实现jsp分页
公司门户网站制作流程,华为官网怎么做?
微信小程序 input输入框控件详解及实例(多种示例)
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
上一篇:nginx命令怎么关闭
上一篇:nginx命令怎么关闭

