這篇文章將為大家詳細講解有關使用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#怎么實現一個WINDOWS登錄功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。