| @@ -1,54 +1,99 @@ | |||||
| using System; | using System; | ||||
| using System.IO; | |||||
| using System.Diagnostics; | |||||
| using System.Net; | using System.Net; | ||||
| using System.Net.Sockets; | using System.Net.Sockets; | ||||
| using System.Runtime.Serialization.Formatters.Binary; | |||||
| using StuMgmLib.MyNameSpace; | |||||
| namespace StuMgmClient | namespace StuMgmClient | ||||
| { | { | ||||
| class ClientConnect | |||||
| class Comm | |||||
| { | { | ||||
| //连接 | |||||
| public static Socket Connect(string ip, int port) | |||||
| #region 基本函数 | |||||
| const int bufSize = 1024 * 1024; | |||||
| static IPEndPoint m_ipEndpoint; | |||||
| static Socket m_socket; | |||||
| static byte[] m_buf; | |||||
| void Init(string ip,int port) | |||||
| { | { | ||||
| Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); | |||||
| IPAddress ipAdress = IPAddress.Parse(ip); | IPAddress ipAdress = IPAddress.Parse(ip); | ||||
| IPEndPoint ipEndpoint = new IPEndPoint(ipAdress, port); | |||||
| m_ipEndpoint = new IPEndPoint(ipAdress, port); | |||||
| m_buf = new byte[bufSize]; | |||||
| } | |||||
| void Connect() | |||||
| { | |||||
| try | try | ||||
| { | { | ||||
| client.Connect(ipEndpoint); | |||||
| m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); | |||||
| m_socket.Connect(m_ipEndpoint); | |||||
| } | } | ||||
| catch (Exception ex) | catch (Exception ex) | ||||
| { | { | ||||
| return null; | |||||
| Debug.Print(ex.Message); | |||||
| } | |||||
| } | |||||
| bool Send(byte[] data) | |||||
| { | |||||
| try | |||||
| { | |||||
| m_socket.Send(data); | |||||
| return true; | |||||
| } | |||||
| catch(Exception e) | |||||
| { | |||||
| Debug.Print(e.Message); | |||||
| return false; | |||||
| } | |||||
| } | |||||
| bool Receive() | |||||
| { | |||||
| try | |||||
| { | |||||
| Array.Clear(m_buf, 0, m_buf.Length); | |||||
| m_socket.Receive(m_buf); | |||||
| return true; | |||||
| } | |||||
| catch (Exception e) | |||||
| { | |||||
| Debug.Print(e.Message); | |||||
| return false; | |||||
| } | } | ||||
| return client; | |||||
| } | } | ||||
| //发送并进行序列化 | |||||
| public static void Send(Socket client) | |||||
| void DisConnect() | |||||
| { | { | ||||
| MemoryStream ms = new MemoryStream(); | |||||
| BinaryFormatter iFormatter = new BinaryFormatter(); | |||||
| Info.ClientSend cs = new Info.ClientSend(); | |||||
| cs.account= 1943; | |||||
| cs.password = "1"; | |||||
| iFormatter.Serialize(ms, cs); | |||||
| byte[] buff = ms.GetBuffer(); | |||||
| //发送消息到服务端 | |||||
| client.Send(buff); | |||||
| client.Close(); | |||||
| } | } | ||||
| //接收并进行反序列化 | |||||
| public static Info.ServerSend Receive(Socket client) | |||||
| #endregion | |||||
| internal ErrCode VerifLogin(string userName,string pawssword,out Roles role) | |||||
| { | { | ||||
| byte[] buffer = new byte[1024 * 1024]; | |||||
| client.Receive(buffer); | |||||
| MemoryStream ms = new MemoryStream(buffer); | |||||
| BinaryFormatter iFormatter = new BinaryFormatter(); | |||||
| Info.ServerSend serverSend = (Info.ServerSend)iFormatter.Deserialize(ms); | |||||
| return serverSend; | |||||
| role = Roles.Error; | |||||
| Connect(); | |||||
| UserInfo cs = new UserInfo(userName,pawssword); | |||||
| byte[] sendBuf; | |||||
| if(Utility.BinSerialize(cs,out sendBuf )) | |||||
| return ErrCode.FailSerial; | |||||
| if (Send(sendBuf)) | |||||
| return ErrCode.FailSend; | |||||
| if (Receive()) | |||||
| return ErrCode.FailReceive; | |||||
| object o; | |||||
| if (Utility.BinDeserialize(m_buf, out o)) | |||||
| return ErrCode.FailDeserial; | |||||
| if (!(o is UserInfo)) | |||||
| return ErrCode.ErrData; | |||||
| DisConnect(); | |||||
| role = ((UserInfo)o).UserRole; | |||||
| return ErrCode.Success; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -2,8 +2,20 @@ | |||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||
| using System.Data; | using System.Data; | ||||
| namespace StuMgmClient | namespace StuMgmClient | ||||
| { | { | ||||
| enum ErrCode | |||||
| { | |||||
| Success, | |||||
| FailSerial, | |||||
| FailDeserial, | |||||
| FailSend, | |||||
| FailReceive, | |||||
| ErrData, | |||||
| } | |||||
| public enum Roles | public enum Roles | ||||
| { | { | ||||
| NotFound = -1, | NotFound = -1, | ||||
| @@ -12,6 +24,38 @@ namespace StuMgmClient | |||||
| Teacher = 2, | Teacher = 2, | ||||
| Student = 3, | Student = 3, | ||||
| } | } | ||||
| [Serializable] | |||||
| public class UserInfo | |||||
| { | |||||
| public string Account; | |||||
| public string Password; | |||||
| public Roles UserRole; | |||||
| public UserInfo(string account, string password) | |||||
| { | |||||
| Account = account; | |||||
| Password = password; | |||||
| } | |||||
| } | |||||
| [Serializable] | |||||
| public class ServerSend | |||||
| { | |||||
| public short permission { get; set; } | |||||
| public DataSet ds { get; set; } | |||||
| } | |||||
| } | |||||
| namespace StuMgmClient | |||||
| { | |||||
| class Data | class Data | ||||
| { | { | ||||
| //状态值字符串转字典 | //状态值字符串转字典 | ||||
| @@ -1,10 +1,6 @@ | |||||
| using System; | using System; | ||||
| using System.Collections.Generic; | |||||
| using System.ComponentModel; | |||||
| using System.Data; | using System.Data; | ||||
| using System.Drawing; | |||||
| using System.Net.Sockets; | using System.Net.Sockets; | ||||
| using System.Text; | |||||
| using System.Text.RegularExpressions; | using System.Text.RegularExpressions; | ||||
| using System.Windows.Forms; | using System.Windows.Forms; | ||||
| using StuMgmLib.MyNameSpace; | using StuMgmLib.MyNameSpace; | ||||
| @@ -13,94 +9,101 @@ namespace StuMgmClient | |||||
| { | { | ||||
| public partial class LoginForm : Form | public partial class LoginForm : Form | ||||
| { | { | ||||
| public static LoginForm login; | |||||
| public LoginForm() | public LoginForm() | ||||
| { | { | ||||
| InitializeComponent(); | InitializeComponent(); | ||||
| } | } | ||||
| string userName = ""; | |||||
| string pawssWord = ""; | |||||
| DataSet ds = null; | |||||
| //DataSet ds = null; | |||||
| ////账号密码正则校验 | |||||
| //public bool RegexUser(string u, string p) | |||||
| //{ | |||||
| // var regex = new Regex("^(?![0-9]+$)(?![a-zA-Z]+$)(?![a-z!@#$]+$)(?![A-Z!@#$]+$)(?![\\d!@#$]+$)^[a-zA-Z\\d!@#$]{5,20}$"); | |||||
| // //校验密码是否符合 | |||||
| // bool resultU = regex.IsMatch(u); | |||||
| // bool resultP = regex.IsMatch(p); | |||||
| // if (resultU == true && resultP == true) | |||||
| // { | |||||
| // return true; | |||||
| // } | |||||
| // else | |||||
| // { | |||||
| // return false; | |||||
| // } | |||||
| //} | |||||
| private void chkPassWord_CheckedChanged(object sender, EventArgs e) | |||||
| { | |||||
| } | |||||
| private void labForgetPassword_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) | |||||
| { | |||||
| } | |||||
| private void btnSubmit_Click(object sender, EventArgs e) | private void btnSubmit_Click(object sender, EventArgs e) | ||||
| { | { | ||||
| Login(); | Login(); | ||||
| } | } | ||||
| //登陆方法 | //登陆方法 | ||||
| public void Login() | public void Login() | ||||
| { | { | ||||
| userName = txtUserName.Text; | |||||
| pawssWord = txtPassWord.Text; | |||||
| //if (!RegexUser(userName, pawssWord)) | |||||
| //{ | |||||
| // MessageBox.Show("用户名和密码必须包含数字,小写或大写,5到20位", "提示"); | |||||
| // return; | |||||
| //} | |||||
| string userName = txtUserName.Text; | |||||
| string pawssword = txtPassWord.Text; | |||||
| Info.ServerSend ss = ConnectServer(); | Info.ServerSend ss = ConnectServer(); | ||||
| //权限管理 | |||||
| int powerNum = (int)ss.permission; | |||||
| ds = ss.ds; | |||||
| switch (powerNum) | |||||
| { | |||||
| case (int)Roles.Student: | |||||
| StudentForm stu = new StudentForm(ds); | |||||
| stu.Show(); | |||||
| login.Hide(); | |||||
| break; | |||||
| case (int)Roles.Teacher: | |||||
| TeacherForm tf = new TeacherForm(ds); | |||||
| tf.Show(); | |||||
| login.Hide(); | |||||
| break; | |||||
| case (int)Roles.Admin: | |||||
| AdminForm af = new AdminForm(); | |||||
| af.Show(); | |||||
| login.Hide(); | |||||
| break; | |||||
| case (Int32)Roles.NotFound: | |||||
| MessageBox.Show("账号或用户名错误", "提示"); | |||||
| break; | |||||
| } | |||||
| } | } | ||||
| //账号密码正则校验 | |||||
| public bool RegexUser(string u, string p) | |||||
| { | |||||
| var regex = new Regex("^(?![0-9]+$)(?![a-zA-Z]+$)(?![a-z!@#$]+$)(?![A-Z!@#$]+$)(?![\\d!@#$]+$)^[a-zA-Z\\d!@#$]{5,20}$"); | |||||
| //校验密码是否符合 | |||||
| bool resultU = regex.IsMatch(u); | |||||
| bool resultP = regex.IsMatch(p); | |||||
| if (resultU == true && resultP == true) | |||||
| { | |||||
| return true; | |||||
| } | |||||
| else | |||||
| { | |||||
| return false; | |||||
| } | |||||
| } | |||||
| //登陆连接服务器 | |||||
| public Info.ServerSend ConnectServer() | |||||
| { | |||||
| Socket client= ClientConnect.Connect("10.10.0.44", 502); | |||||
| if (client== null) | |||||
| { | |||||
| MessageBox.Show("连接失败", "提示"); | |||||
| return null; | |||||
| } | |||||
| else | |||||
| { | |||||
| ClientConnect.Send(client); | |||||
| Info.ServerSend ss = ClientConnect.Receive(client); | |||||
| return ss; | |||||
| } | |||||
| } | |||||
| //窗体加载 | |||||
| private void LoginForm_Load(object sender, EventArgs e) | |||||
| { | |||||
| login = this; | |||||
| } | |||||
| ////权限管理 | |||||
| // int powerNum = (int)ss.permission; | |||||
| // ds = ss.ds; | |||||
| // switch (powerNum) | |||||
| // { | |||||
| // case (int)Roles.Student: | |||||
| // StudentForm stu = new StudentForm(ds); | |||||
| // stu.Show(); | |||||
| // login.Hide(); | |||||
| // break; | |||||
| // case (int)Roles.Teacher: | |||||
| // TeacherForm tf = new TeacherForm(ds); | |||||
| // tf.Show(); | |||||
| // login.Hide(); | |||||
| // break; | |||||
| // case (int)Roles.Admin: | |||||
| // AdminForm af = new AdminForm(); | |||||
| // af.Show(); | |||||
| // login.Hide(); | |||||
| // break; | |||||
| // case (Int32)Roles.NotFound: | |||||
| // MessageBox.Show("账号或用户名错误", "提示"); | |||||
| // break; | |||||
| // } | |||||
| ////登陆连接服务器 | |||||
| //public Info.ServerSend ConnectServer() | |||||
| //{ | |||||
| // Socket client= ClientConnect.Connect("10.10.0.44", 502); | |||||
| // if (client== null) | |||||
| // { | |||||
| // MessageBox.Show("连接失败", "提示"); | |||||
| // return null; | |||||
| // } | |||||
| // else | |||||
| // { | |||||
| // ClientConnect.Send(client); | |||||
| // Info.ServerSend ss = ClientConnect.Receive(client); | |||||
| // return ss; | |||||
| // } | |||||
| //} | |||||
| } | } | ||||
| } | } | ||||
| @@ -31,7 +31,7 @@ | |||||
| this.components = new System.ComponentModel.Container(); | this.components = new System.ComponentModel.Container(); | ||||
| System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm)); | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm)); | ||||
| this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); | this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); | ||||
| this.linkLabel1 = new System.Windows.Forms.LinkLabel(); | |||||
| this.labForgetPassword = new System.Windows.Forms.LinkLabel(); | |||||
| this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); | this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); | ||||
| this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); | this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); | ||||
| this.lblHead = new System.Windows.Forms.Label(); | this.lblHead = new System.Windows.Forms.Label(); | ||||
| @@ -60,19 +60,20 @@ | |||||
| // | // | ||||
| this.toolTip1.IsBalloon = true; | this.toolTip1.IsBalloon = true; | ||||
| // | // | ||||
| // linkLabel1 | |||||
| // | |||||
| this.linkLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); | |||||
| this.linkLabel1.AutoSize = true; | |||||
| this.linkLabel1.LinkColor = System.Drawing.Color.DodgerBlue; | |||||
| this.linkLabel1.Location = new System.Drawing.Point(125, 12); | |||||
| this.linkLabel1.Name = "linkLabel1"; | |||||
| this.linkLabel1.Size = new System.Drawing.Size(117, 15); | |||||
| this.linkLabel1.TabIndex = 7; | |||||
| this.linkLabel1.TabStop = true; | |||||
| this.linkLabel1.Text = "忘记密码"; | |||||
| this.linkLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; | |||||
| this.toolTip1.SetToolTip(this.linkLabel1, "请联系教师!"); | |||||
| // labForgetPassword | |||||
| // | |||||
| this.labForgetPassword.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); | |||||
| this.labForgetPassword.AutoSize = true; | |||||
| this.labForgetPassword.LinkColor = System.Drawing.Color.DodgerBlue; | |||||
| this.labForgetPassword.Location = new System.Drawing.Point(125, 12); | |||||
| this.labForgetPassword.Name = "labForgetPassword"; | |||||
| this.labForgetPassword.Size = new System.Drawing.Size(117, 15); | |||||
| this.labForgetPassword.TabIndex = 7; | |||||
| this.labForgetPassword.TabStop = true; | |||||
| this.labForgetPassword.Text = "忘记密码"; | |||||
| this.labForgetPassword.TextAlign = System.Drawing.ContentAlignment.MiddleRight; | |||||
| this.toolTip1.SetToolTip(this.labForgetPassword, "请联系教师!"); | |||||
| this.labForgetPassword.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.labForgetPassword_LinkClicked); | |||||
| // | // | ||||
| // tableLayoutPanel2 | // tableLayoutPanel2 | ||||
| // | // | ||||
| @@ -240,7 +241,7 @@ | |||||
| this.tableLayoutPanel4.ColumnCount = 2; | this.tableLayoutPanel4.ColumnCount = 2; | ||||
| this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); | this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); | ||||
| this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); | this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); | ||||
| this.tableLayoutPanel4.Controls.Add(this.linkLabel1, 1, 0); | |||||
| this.tableLayoutPanel4.Controls.Add(this.labForgetPassword, 1, 0); | |||||
| this.tableLayoutPanel4.Controls.Add(this.chkPassWord, 0, 0); | this.tableLayoutPanel4.Controls.Add(this.chkPassWord, 0, 0); | ||||
| this.tableLayoutPanel4.Location = new System.Drawing.Point(102, 165); | this.tableLayoutPanel4.Location = new System.Drawing.Point(102, 165); | ||||
| this.tableLayoutPanel4.Name = "tableLayoutPanel4"; | this.tableLayoutPanel4.Name = "tableLayoutPanel4"; | ||||
| @@ -259,6 +260,7 @@ | |||||
| this.chkPassWord.TabIndex = 6; | this.chkPassWord.TabIndex = 6; | ||||
| this.chkPassWord.Text = "记住密码"; | this.chkPassWord.Text = "记住密码"; | ||||
| this.chkPassWord.UseVisualStyleBackColor = true; | this.chkPassWord.UseVisualStyleBackColor = true; | ||||
| this.chkPassWord.CheckedChanged += new System.EventHandler(this.chkPassWord_CheckedChanged); | |||||
| // | // | ||||
| // LoginForm | // LoginForm | ||||
| // | // | ||||
| @@ -309,7 +311,7 @@ | |||||
| private System.Windows.Forms.TextBox txtPassWord; | private System.Windows.Forms.TextBox txtPassWord; | ||||
| private System.Windows.Forms.PictureBox picPassWord; | private System.Windows.Forms.PictureBox picPassWord; | ||||
| private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; | private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; | ||||
| private System.Windows.Forms.LinkLabel linkLabel1; | |||||
| private System.Windows.Forms.LinkLabel labForgetPassword; | |||||
| private System.Windows.Forms.CheckBox chkPassWord; | private System.Windows.Forms.CheckBox chkPassWord; | ||||
| } | } | ||||
| @@ -123,9 +123,6 @@ | |||||
| <metadata name="txtUserName.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | <metadata name="txtUserName.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | ||||
| <value>True</value> | <value>True</value> | ||||
| </metadata> | </metadata> | ||||
| <metadata name="txtUserName.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||||
| <value>True</value> | |||||
| </metadata> | |||||
| <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> | <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> | ||||
| <data name="picUserName.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | <data name="picUserName.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | ||||
| <value> | <value> | ||||
| @@ -153,9 +150,6 @@ | |||||
| <metadata name="txtPassWord.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | <metadata name="txtPassWord.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | ||||
| <value>True</value> | <value>True</value> | ||||
| </metadata> | </metadata> | ||||
| <metadata name="txtPassWord.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||||
| <value>True</value> | |||||
| </metadata> | |||||
| <data name="picPassWord.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | <data name="picPassWord.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | ||||
| <value> | <value> | ||||
| iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAA4BJREFUaEPV | iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAA4BJREFUaEPV | ||||
| @@ -91,6 +91,7 @@ | |||||
| <Compile Include="StudentNavigation.Designer.cs"> | <Compile Include="StudentNavigation.Designer.cs"> | ||||
| <DependentUpon>StudentNavigation.cs</DependentUpon> | <DependentUpon>StudentNavigation.cs</DependentUpon> | ||||
| </Compile> | </Compile> | ||||
| <Compile Include="Utility.cs" /> | |||||
| <EmbeddedResource Include="SelectFrom.resx"> | <EmbeddedResource Include="SelectFrom.resx"> | ||||
| <DependentUpon>SelectFrom.cs</DependentUpon> | <DependentUpon>SelectFrom.cs</DependentUpon> | ||||
| </EmbeddedResource> | </EmbeddedResource> | ||||
| @@ -0,0 +1,45 @@ | |||||
| using System; | |||||
| using System.Diagnostics; | |||||
| using System.IO; | |||||
| using System.Runtime.Serialization.Formatters.Binary; | |||||
| namespace StuMgmClient | |||||
| { | |||||
| class Utility | |||||
| { | |||||
| internal static bool BinSerialize<T>(T data, out byte[] buff) | |||||
| { | |||||
| try | |||||
| { | |||||
| MemoryStream ms = new MemoryStream(); | |||||
| BinaryFormatter iFormatter = new BinaryFormatter(); | |||||
| iFormatter.Serialize(ms, data); | |||||
| buff = ms.GetBuffer(); | |||||
| return true; | |||||
| } | |||||
| catch (Exception e) | |||||
| { | |||||
| Debug.Print(e.Message); | |||||
| buff = null; | |||||
| return false; | |||||
| } | |||||
| } | |||||
| internal static bool BinDeserialize(byte[] data, out object o) | |||||
| { | |||||
| try | |||||
| { | |||||
| MemoryStream ms = new MemoryStream(data); | |||||
| BinaryFormatter iFormatter = new BinaryFormatter(); | |||||
| o = iFormatter.Deserialize(ms); | |||||
| return true; | |||||
| } | |||||
| catch (Exception e) | |||||
| { | |||||
| Debug.Print(e.Message); | |||||
| o = null; | |||||
| return false; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -4,22 +4,33 @@ using System.Data; | |||||
| namespace StuMgmLib.MyNameSpace | namespace StuMgmLib.MyNameSpace | ||||
| { | { | ||||
| public class Info | |||||
| [Serializable] | |||||
| public class UserInfo | |||||
| { | { | ||||
| [Serializable] | |||||
| public class ClientSend | |||||
| public string Account; | |||||
| public string Password; | |||||
| public UserInfo(string account,string password) | |||||
| { | { | ||||
| public short account { get; set; } | |||||
| public string password { get; set; } | |||||
| public string [] sqlStr { get; set; } | |||||
| Account = account; | |||||
| Password = password; | |||||
| } | } | ||||
| [Serializable] | |||||
| } | |||||
| [Serializable] | |||||
| public class UserInfo | |||||
| { | |||||
| public short UserLevel; | |||||
| } | |||||
| [Serializable] | |||||
| public class ServerSend | public class ServerSend | ||||
| { | { | ||||
| public short permission { get; set; } | public short permission { get; set; } | ||||
| public DataSet ds { get; set; } | public DataSet ds { get; set; } | ||||
| } | } | ||||
| } | |||||
| } | } | ||||