private void Button1_Click(object sender, System.EventArgs e)
{
string sxname,sxpwd;
sxname = TextBox1.Text;
sxpwd = TextBox2.Text;
if(Authenticate(sxname,sxpwd))
{
Response.Redirect("sx_teacher_nfo/sxteacherinfo.aspx");
}
else
{
Response.Write("请仔细检查,再试一次。");
}
}public override bool Authenticate(string username, string password)
{
SqlConnection conn = new SqlConnection ("server=localhost;" + "database=sx;Trusted_Connection=Yes");
SqlDataReader iDr;
try
{
string sSql;
sSql="select * from sx_logo where sx_logon='"+username+"' and sx_pwd='"+password+"'";
SqlCommand iCmd=new SqlCommand(sSql,conn);
conn.Open();
iDr=iCmd.ExecuteReader(); if(iDr.HasRows)
{
return true;
//Response.Redirect("sx_teacher_nfo/sxteacherinfo.aspx");
}
else
{
return false;
//Response.Write("你输入有误,请在试一次。");
} }
catch(Exception Ex)
{
Response.Write(Ex.ToString());
return false;
}
finally{
conn.Close();
} }
======================================================================================
这是web.config中的设置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web> <!-- 动态调试编译
设置 compilation debug="true" 以启用 ASPX 调试。否则,将此值设置为
false 将提高此应用程序的运行时性能。
设置 compilation debug="true" 以将调试符号(.pdb 信息)
插入到编译页中。因为这将创建执行起来
较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为
false。有关更多信息,请参考有关
调试 ASP.NET 文件的文档。
-->
<compilation
defaultLanguage="c#"
debug="true"
/> <!-- 自定义错误信息
设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。
为每个要处理的错误添加 <error> 标记。 "On" 始终显示自定义(友好的)信息。
"Off" 始终显示详细的 ASP.NET 错误信息。
"RemoteOnly" 只对不在本地 Web 服务器上运行的
用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便
不向远程客户端显示应用程序的详细信息。
-->
<customErrors
mode="RemoteOnly"
/> <!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是 "Windows"、
"Forms"、 "Passport" 和 "None" "None" 不执行身份验证。
"Windows" IIS 根据应用程序的设置执行身份验证
(基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
"Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后
在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
"Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
它为成员站点提供单独登录和核心配置文件服务。
-->
<authentication mode="Forms">
<!-- <forms name=".ASPXAUTH"
loginUrl="login.aspx"
protection="All"
timeout="30"
></forms> -->
</authentication>
<!-- 授权
此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
(未经身份验证的)用户。
--> <authorization>
<deny users="?"/>
</authorization>如果web.config按默认的形式的话,他能正确的定向到其它页面,但如果按上面的设置的话,即使我输入正确的用户名和密码也不能定向到会员区的页面,还是回到原来的登录页面,我估计可能authenticate方法的重定是不是有误,但不知要怎么改,请教 一下大家
{
string sxname,sxpwd;
sxname = TextBox1.Text;
sxpwd = TextBox2.Text;
if(Authenticate(sxname,sxpwd))
{
Response.Redirect("sx_teacher_nfo/sxteacherinfo.aspx");
}
else
{
Response.Write("请仔细检查,再试一次。");
}
}public override bool Authenticate(string username, string password)
{
SqlConnection conn = new SqlConnection ("server=localhost;" + "database=sx;Trusted_Connection=Yes");
SqlDataReader iDr;
try
{
string sSql;
sSql="select * from sx_logo where sx_logon='"+username+"' and sx_pwd='"+password+"'";
SqlCommand iCmd=new SqlCommand(sSql,conn);
conn.Open();
iDr=iCmd.ExecuteReader(); if(iDr.HasRows)
{
return true;
//Response.Redirect("sx_teacher_nfo/sxteacherinfo.aspx");
}
else
{
return false;
//Response.Write("你输入有误,请在试一次。");
} }
catch(Exception Ex)
{
Response.Write(Ex.ToString());
return false;
}
finally{
conn.Close();
} }
======================================================================================
这是web.config中的设置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web> <!-- 动态调试编译
设置 compilation debug="true" 以启用 ASPX 调试。否则,将此值设置为
false 将提高此应用程序的运行时性能。
设置 compilation debug="true" 以将调试符号(.pdb 信息)
插入到编译页中。因为这将创建执行起来
较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为
false。有关更多信息,请参考有关
调试 ASP.NET 文件的文档。
-->
<compilation
defaultLanguage="c#"
debug="true"
/> <!-- 自定义错误信息
设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。
为每个要处理的错误添加 <error> 标记。 "On" 始终显示自定义(友好的)信息。
"Off" 始终显示详细的 ASP.NET 错误信息。
"RemoteOnly" 只对不在本地 Web 服务器上运行的
用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便
不向远程客户端显示应用程序的详细信息。
-->
<customErrors
mode="RemoteOnly"
/> <!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是 "Windows"、
"Forms"、 "Passport" 和 "None" "None" 不执行身份验证。
"Windows" IIS 根据应用程序的设置执行身份验证
(基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
"Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后
在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
"Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
它为成员站点提供单独登录和核心配置文件服务。
-->
<authentication mode="Forms">
<!-- <forms name=".ASPXAUTH"
loginUrl="login.aspx"
protection="All"
timeout="30"
></forms> -->
</authentication>
<!-- 授权
此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
(未经身份验证的)用户。
--> <authorization>
<deny users="?"/>
</authorization>如果web.config按默认的形式的话,他能正确的定向到其它页面,但如果按上面的设置的话,即使我输入正确的用户名和密码也不能定向到会员区的页面,还是回到原来的登录页面,我估计可能authenticate方法的重定是不是有误,但不知要怎么改,请教 一下大家
解决方案 »
- 关于连接数据库一个百思不得其解的问题
- 求抓屏代码(asp.net)
- 如何取嵌套Repeater里面控件的值
- 大家还没下班吧..问个DIV实现TAB相关的问题..
- 我的vs 2005 怎么没有ConfigurationManager这个类,有知道的吗?
- ASP.NET如何一次性向数据库插入一张表的多条语句
- 淘宝技术也不知道的问题!!!
- response.write('xml内容') 中文出现乱码
- IEWebControls.exe如何使用由没有中文帮助?
- 如何做一个PICKUP工能
- 帮帮忙写一个自定义控件,控制DataGrid的翻页和跳转.
- 这个问题也许大家很少用到!!我想写一个对XML文件的分页显示程序,怎么才能每次从XML文件中加载一页的数据???
{
Response.Redirect("sx_teacher_nfo/sxteacherinfo.aspx");
}?????
下文呢?登陆成功,你没有处理?
conn.Open();
iDr=iCmd.ExecuteReader();这里有没有问题? conn 你前面已经打开过了吧?
感觉程序结构上没有什么问题的啊.
至于web.config中的设置,就不是很了解了,请高手赐教...
建议不要这样写sql语句,尤其在验证的时候,有潜在的危险。
建议采用duwamish中验证用的sql语句。
FormsAuthentication.SetAuthCookie(sxname,false);,以便给认证用的cookies"ASPXAUTH"赋值.因为你没写这一行,认证未通过,系统会自动返加login.aspx页面.
没错:craker最喜欢的代码莫过如此!
假如用户输入
' delete from sx_logo --
我想你再也没有用户可以通过了。