本文实例讲述了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 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 Domain) { //设置用户登录成功的标志 bool flag1 = false; try { int num1; IntPtr ptr1; //调用windows登录的API if (!logonUser(Username,Domain,Password,2,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#实现的WINDOWS登录功能示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)