就是说做一个用户登录界面,用户需要先输入用户名和密码,正确的话才能进入到程序,否则提示错误。
解决方案 »
- 关于GeckoFX的使用
- 有关VSTO的问题
- ListView 指定行删除行问题???急....
- C#判断installshiled安装的服务是否存在并且获取服务
- 高人帮忙啊,数据库插入问题
- WinForm 里DataGRID 添加 Button按钮例的问题
- win98下如何用代码设置共享文件夹,win2000下我知道是用Net Share
- cannot start debugging.unable to find microsoft internet explorer.
- C#如何动态加载多个相关dll
- 用java和C#去做Web,或WebGIS,谁更有优势?
- winform 添加皮肤后不能修改label字体颜色
- BeginInvoke 问题
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
fLogin fl = new fLogin();
if (fl.ShowDialog()== DialogResult.OK)
Application.Run(new fMain());
fLogin.cs
this.DialogResult = DialogResult.OK;
在新建一个应用程序的时候,默认的是一个Form,现在我想在打开这个Form之前先验证密码,根据不同的权限来打开不同的应用程序,是这样的
您说的我也知道
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;namespace stserver
{
public partial class login : Form
{
public login()
{
InitializeComponent();
}
public bool islogin = false; private void btn_submit_Click(object sender, EventArgs e)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(Application.StartupPath + "\\config.xml");
string connstr = doc.DocumentElement.SelectSingleNode("serverconnstr").InnerText;
string selectstr = "select top 1 id from admin where uid='" + txb_uid.Text + "' and pwd='" + txb_pwd.Text + "'";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand cmd = new SqlCommand(selectstr, conn);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
islogin = true;
dr.Close();
conn.Close();
conn.Dispose();
MessageBox.Show("您好," + txb_pwd.Text + "!,欢迎使用\n\n祝您工作愉快!", "欢迎", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
else
{
dr.Close();
conn.Close();
conn.Dispose();
MessageBox.Show("登录失败!\n请检查您的登录用户名和密码是否正确。\n\n如果您忘记了自己的密码请联系技术部");
txb_uid.Text = "";
txb_pwd.Text = "";
txb_uid.Focus();
}
dr.Close();
conn.Close();
conn.Dispose();
}
catch
{
MessageBox.Show("不能连接到服务器,请联系技术部","服务器故障",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
} private void btn_cancel_Click(object sender, EventArgs e)
{
Application.ExitThread();
}
}
}
using System.Collections.Generic;
using System.Windows.Forms;namespace stserver
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
login loginfrm=new login();
loginfrm.ShowDialog();
if (loginfrm.islogin == true)
{
loginfrm.Close();
Application.Run(new stserver());
}
else
{
loginfrm.ShowDialog();
}
}
}
}
先检查是否已登陆,如果已经登陆那么直接进入主页面,否则进入Login页面
用你输入的用户名和密码当作参数到数据库验证,查到就登录成功,否则登录失败! 自己下载个demo看看吧!
数据库中管理人员表建立权限字段
你程序设计的时候就应该在需要区别权限操作的地方写:
if(合法用户)
{
//显示操作
if(浏览权限)
{
//管理按钮不显示
}
}或者:
//显示普通界面
if(编辑权限)
{
显示编辑菜单
}
else if (管理权限)
{
//显示管理菜单
}
login frmlogin = new login();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new main_form());
}
frmlogin 的click中sqlconnection中查询数据库
代码51aspx.com
http://bbs.bccn.net/thread-314376-1-8.html
楼主开始确实没有说明白自己的意图,不过后来说的很清楚了
——用户登录时,按照该用户的权限打开相应的窗口
其实他问的就是权限设置的问题,思路其实也是有的,只不过不够明朗。根据楼主的思路,给楼主个建议:建立用户表最基本的几个字段:
用户 密码 角色
001 001 游客
002 002 普通用户
801 801 管理员登录窗口中 textBox1 用户 textBox2 密码 comboBox1 角色验证输入无误后,对 comboBox1 角色 进行一个判断switch (comboBox1 角色)
{
case "游客":
打开 游客form
break;
case "普通用户":
打卡 普通用户form
break;
case "管理员":
打卡 管理员form
break;
}这下楼主应该明白了吧,其实这个是最简单的稍微复杂一点的话,所有用户用一个form,在用户表中对每个权限进行设置,比如新窗口中有10个操作,那么用户表中增加10个字段,每个字段的值设置为1(拥有权限)或者0(无权限),
用户登录时,读取该用户对应的10个字段,对每个字段进行一个判断,如果是0,就把相应的操作按钮的visible设置为false,如:button1.visible=false;
这样界面显示后,该控件就无法单击了其实我也是个新手,如果你愿意多花点时间琢磨的话,很简单的
我从我的程序考了段代码贴上来的呵呵,数据库连接字段和其他配置信息都在xml中存着,不引用xml命名空间怎们行呢
登录按钮事件:
首先判断用户名是否正确,如果错误,提示用户名错误!登录失败!;如果正确,再判断登录错误次数,如果登录错误次数过多,禁止登陆;接下来,验证密码是否正确,如果正确,弹出登录成功,进入另外一个窗体,并把登录错误次数清零;如果错误,则弹出密码错误!登录失败!,并把登录错误次数+1。
取消按钮事件:
把用户名文本框和密码文本框的文本清空。
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Security.Cryptography;
using System.IO;
using System.Text;public partial class admin_Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void btnLogin_Click(object sender, EventArgs e)
{
//1.获取用户输入的用户名和密码
string userName = this.txtUserName.Text;
string password = this.txtPassword.Text;
//2.根据用户名和密码验证用户身份,如果正确,转到后台管理主页面,否则,给出错误信息
if (BLL.LoginManage.IsValid(userName, Encrypt(password)))
{
Entity.UserMessage uds = BLL.UserManage.GetUserByLoginId(userName);
Session["UserInfo"] = uds;
Response.Redirect("Manage.aspx");
}
else
{
MessageBox("用户名或密码错误!");
} } private void MessageBox(string message)
{
string outputMessage = "<script language='javascript'>alert('" + message + "')</script>";
Response.Write(outputMessage);
} private static byte[] key = { };
private static byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
private static string EncryptionKey = "!5623a#de"; /// <summary>
/// 密码加密方法
/// </summary>
/// <param name="Input"></param>
/// <returns></returns>
public string Encrypt(string Input)
{
try
{
key = System.Text.Encoding.UTF8.GetBytes(EncryptionKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
Byte[] inputByteArray = Encoding.UTF8.GetBytes(Input);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch
{
return "";
}
}}
登录界面哟~~