一直对forms验证中的角色很模糊,不知道怎么搞,昨天晚上仔细看了下csdn的杂志,心里稍微有点底,今天早晨一上csdn,就看到思归大人回的一篇贴,是关于asp.net中的forms验证roles,地址是:http://www.codeproject.com/aspnet/formsroleauth.asp 汗,怎么是E文,我的e文特差,但是不知道为什么这次竟然被我看懂了,模仿他的做,竟然成功!,特把过程以及我的理解写出来,希望对和我一样的菜鸟有点帮助,同时我的一些理解可能错误,希望各位老大们能够指出,非常感谢,下面我开始边翻译边按照他的做: 1,首先我们新建一个数据库,名字叫web,添加一个表叫users,里面有三个字段,username字段为主键,username和password字段设置为联合索引,不知道我这样理解对么?请指正 CREATE DATABASE web CREATE TABLE users ( username nvarchar(64) CONSTRAINT users_PK PRIMARY KEY, password nvarchar(128), roles nvarchar(64) ) CREATE INDEX credentials ON users ( username, password ) 我们再在users表中添加两个用户:pwqzc 123456 Administrator,User pwq 123456 User 第一个为名字,第二个为密码,第三个为用户所具有的角色,多个角色用,逗号分开 2,创建一个登陆页login.aspx 里面放两个TextBox和一个按钮,在按钮的单击事件里写代码: private void btnLogin_Click(object sender, System.EventArgs e) { //初始化FormsAuthentication FormsAuthentication.Initialize(); //创建个connection和command对象 SqlConnection conn = new SqlConnection("server=(local);uid=sa;pwd=mydream54win;database=web"); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select roles from users where username=@username and password=@password"; //添加参数以及给参数赋值 cmd.Parameters.Add("@username",SqlDbType.VarChar,64); cmd.Parameters["@username"].Value = Username.Value; cmd.Parameters.Add("@password",SqlDbType.VarChar,128); cmd.Parameters["@password"].Value = Password.Value;
|