首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么让ASP.NET登录时区分大小写

2012-02-09 
如何让ASP.NET登录时区分大小写?我的用户名不分大小写。大小写都可以成功登录。数据库用的是SQLServer2000的

如何让ASP.NET登录时区分大小写?
我的用户名不分大小写。大小写都可以成功登录。数据库用的是SQL   Server   2000的。里面的内容都是区

分大小写的。直接打开数据库,或是用Gridview和自己写的代码在textbox里显示都是区分大小写。真不

明白为什么登录时却大小不分。

这是MyClass的代码,放在MyClass.cs里面。以后调用。
--------------------------------------

using   System;

namespace   WebApplication
{
///   <summary>
///   MyClass   的摘要说明。
///   </summary>
public   class   MyClass
{
public   MyClass()
{
//
//   TODO:   在此处添加构造函数逻辑
//
}
private   static   string  

connString= "Server=localhost;uid=sa;pwd=;database=webdevelop ";

public   static   string   ConnString
{
get
{
return   connString;
}
}
}
}


--------------------------------------

这是登录按钮的代码。

--------------------------------------
using   System;
using   System.Collections;
using   System.ComponentModel;
using   System.Data;
using   System.Drawing;
using   System.Web;
using   System.Web.SessionState;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.HtmlControls;
using   System.Data.SqlClient;

namespace   WebApplication
{
///   <summary>
///   Main   的摘要说明。
///   </summary>
public   class   Main   :   System.Web.UI.Page
{
protected   System.Web.UI.WebControls.HyperLink   HyperLinkSearch;
protected   System.Web.UI.WebControls.HyperLink   HyperLinkForum;
protected   System.Web.UI.WebControls.HyperLink   HyperLinkExplorer;
protected   System.Web.UI.WebControls.TextBox   TextBoxName;
protected   System.Web.UI.WebControls.TextBox   TextBoxPassword;
protected   System.Web.UI.WebControls.Button   ButtonEnter;
protected   System.Web.UI.WebControls.Button   ButtonLogin;
protected   System.Web.UI.WebControls.TextBox   TextBoxState;

private   void   Page_Load(object   sender,   System.EventArgs   e)
{
//   在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
if(Session[ "userName "].ToString()!= " ")
{
this.TextBoxState.Text= "用户 "+Session

[ "userName "].ToString()+ "登录成功。 ";
SetEnable(true);
}
else
{
this.TextBoxState.Text= "如果你已经注册过,请登录,如

果尚未注册,请先注册! ";
SetEnable(false);
}
}

}

#region   Web   窗体设计器生成的代码
override   protected   void   OnInit(EventArgs   e)
{
//
//   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///   <summary>
///   设计器支持所需的方法   -   不要使用代码编辑器修改
///   此方法的内容。
///   </summary>
private   void   InitializeComponent()
{        
this.ButtonEnter.Click   +=   new   System.EventHandler

(this.ButtonEnter_Click);
this.ButtonLogin.Click   +=   new   System.EventHandler

(this.ButtonLogin_Click);


this.Load   +=   new   System.EventHandler(this.Page_Load);

}
#endregion

private   void   SetEnable(bool   enable)
{
this.HyperLinkExplorer.Enabled=enable;
this.HyperLinkForum.Enabled=enable;
this.HyperLinkSearch.Enabled=enable;
}
private   void   ButtonEnter_Click(object   sender,   System.EventArgs   e)
{
string   name=this.TextBoxName.Text;
string   pwd=this.TextBoxPassword.Text;
if(name.IndexOf( " ' ")> -1||   name.IndexOf( '   ')> -1||   name.IndexOf

( ' " ')> -1
||   pwd.IndexOf( " ' ")> -1   ||   pwd.IndexOf( '   ')> -1   ||  

pwd.IndexOf( ' " ')> -1)
{
this.TextBoxState.Text= "用户名或密码包含有非法字符! ";
return;
}
SqlConnection   conn   =   new   SqlConnection(MyClass.ConnString);
string   sqlstr= "select   *   from   loginuser   where   (username= ' "+name+ " ')  

and   ( "
+ "userpwd= ' "+pwd+ " ') ";
SqlCommand   command   =   new   SqlCommand(sqlstr,conn);
conn.Open();
try
{
SqlDataReader   dr=command.ExecuteReader();
if(dr.Read()==true)
{
SetEnable(true);
Session[ "userName "]=name;
this.TextBoxState.Text= "用户 "+name+ "登录成功。 ";
}
else
{
SetEnable(false);
Session[ "userName "]= " ";
this.TextBoxState.Text= "登录失败,无此用户或密码不正

确! ";
}
dr.Close();
}
catch(Exception   err)
{
this.TextBoxState.Text= "系统错误: "+err.Message;
}
conn.Close();
}

private   void   ButtonLogin_Click(object   sender,   System.EventArgs   e)
{
Response.Redirect( "login.aspx ");
}

}
}


--------------------------------------

这是直接使用刘瑞新的C#的书的代码。不知道这里有没有刘瑞新的Fans。电子教案和程序源代码可以在这

里免费下载。

http://www.cmpbook.com/article.asp?id=14502&pubnums=1-3
在读者评论里“下载源码.......”.   里面的习题文件夹有Webapplicatin文件夹。是一个论坛。


把代码改写成

--------------------------------------
                  string   name=this.TextBoxName.Text.ToString();
string   pwd=this.TextBoxPassword.Text.ToString();

--------------------------------------

也不行。烦死了。我的网站就差这点了。我一定要区分大小写。

我是第一次来CSDN.   请这里的高手帮忙。

谢谢了。@   _   @

[解决办法]
sql 中 是不区分大小写的.
[解决办法]
所谓sql中区分大小写,从数据库的排序规则就可以看出。
不区分大小写并不是说你输入的大写字母保存到数据库中后就变成小写。
[解决办法]
sql语句的问题...你除非在程序上做判断;
[解决办法]
SQL安装时可以选择大小写规则,默认是不区分大小写的,可以把密码用MD5加密储存,就区分大小写了。
[解决办法]
你可以先不区分大小写,如果数据库里有这个记录,然后把登录名从数据库里取出来与用户填写的比较是否相等,或者将数据库中登录名的字段改为char类型,char类型肯定是区分大小写的


[解决办法]
sql是可以区分大小写的,就是在create table的时候,在列的后面要加一句话,具体怎么写给忘了

但类似SQL_Latin1_General_CP850_CI_AS这么样的一个东西
[解决办法]
应该在入库的时候判断把 还没有用到过区分大小写的情况
[解决办法]
除非楼主先做了大小写更改.否则sql本身是区分大小写的.
[解决办法]
对呀,不用Sql进行判断。
把记录找到,读取到C#的变量中。C#是区分大小写的。
这样在C#里判断 就可以了。
[解决办法]
比如,你用 "select username,password from [tablename] where username= ' "TxtUserName.Text " ' "取得记录放到DataReader里。
string UserName=dr.getString(0);
string Password=dr.getString(1);
然后再比较UserName和TxtUserName.Text是不是一样,这样就可以区分大小写了。
密码一般是加密的,所以不存在大小写问题吧。
呵呵

热点排行