新闻系统用户登录?
我是初学者,新闻系统用户登录,大家说说思路
C#+ACCESS的,谁有简单的源码,发到sddyd@sina.com
问题点数:20、回复次数:4Top
1 楼czhenq(...... fucking life. I want to change.)回复于 2005-01-31 00:34:46 得分 0
Login.aspx 登陆页面中的登陆按钮
private void btnConfirm_Click(object sender, System.EventArgs e)
{
LoginHelp login = new LoginHelp();
login.UserName = txtUserName.Text;
login.PassWord = txtPassWord.Text;
bool bResult = login.Login();
if(bResult)
{
Session[LoginHelp.SessionName] = true;
Response.Redirect("default.aspx",true);
}
}
然后在每个管理页面的Page_Load里加上
try
{
bool ifLogin = bool.Parse(Session[LoginHelp.SessionName].ToString());
(!ifLogin)
Response.Redirect("Login.aspx",true);
}
catch
{
Response.Redirect("Login.aspx",true);
}
LoginHelp.SessionName //Session的名字,写在另外的一个类里
LoginHelp // 自己写的一个登陆类Top
2 楼yyne(一步一个脚印往上爬)回复于 2005-01-31 04:18:02 得分 15
给一段验证登录的参考代码:
Web.Config
----------------------------
<configuration>
<system.web>
<authentication mode="Forms" />
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
Login.aspx
----------------------------
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat=server>
void Page_Load(Object sender , EventArgs e)
{
string strLinkPath;
if (! IsPostBack ) {
strLinkPath = string .Format( "Register/Register.aspx?ReturnUrl={0}", Request.Params[ "ReturnUrl" ] );
lnkRegister.NavigateUrl = string .Format( strLinkPath );
}
}
void Button_Click( object s, EventArgs e ) {
if ( IsValid ) {
if ( DBAuthenticate( txtUsername.Text, txtPassword.Text ) > 0 )
{
FormsAuthentication.RedirectFromLoginPage( txtUsername.Text, false );
}
}
}
int DBAuthenticate( string strUsername, string strPassword ) {
SqlConnection conMyData;
SqlCommand cmdSelect;
SqlParameter parmReturnValue;
int intResult;
conMyData = new SqlConnection( "Server=localhost;Integrated Security=SSPI;Database=myData" );
cmdSelect = new SqlCommand( "DBAuthenticate", conMyData );
cmdSelect.CommandType = CommandType.StoredProcedure;
parmReturnValue = cmdSelect.Parameters.Add( "RETURN_VALUE", SqlDbType.Int );
parmReturnValue.Direction = ParameterDirection.ReturnValue;
cmdSelect.Parameters.Add( "@username", strUsername );
cmdSelect.Parameters.Add( "@password", strPassword );
conMyData.Open();
cmdSelect.ExecuteNonQuery();
intResult = System.Convert.ToInt32(cmdSelect.Parameters[ "RETURN_VALUE" ].Value);
conMyData.Close();
if ( intResult < 0 )
{
if ( intResult == -1 )
{
lblMessage.Text = "Username ! Registered!";
}
else
{
lblMessage.Text = "Invalid Password!";
}
}
return intResult;
}
</Script>
<html>
<head><title>Login.aspx</title></head>
<body>
<form Runat="Server">
<h2>Please Login:</h2>
<asp:Label
ID="lblMessage"
ForeColor="Red"
Font-Bold="True"
Runat="Server" />
<p>
<b>Username:</b>
<br/>
<asp:TextBox
ID="txtUsername"
Runat="Server" />
<asp:RequiredFieldValidator
ControlToValidate="txtUsername"
Text="Required!"
Runat="Server" />
<p>
<b>Password:</b>
<br/>
<asp:TextBox
ID="txtPassword"
Runat="Server" />
<asp:RequiredFieldValidator
ControlToValidate="txtPassword"
Text="Required!"
Runat="Server" />
<p>
<asp:Button
Text="Login!"
OnClick="Button_Click"
Runat="Server" />
<hr>
<asp:HyperLink
ID="lnkRegister"
Text="Click Here To Register!"
Runat="Server" />
</form>
</body>
</html>
Top
3 楼yyne(一步一个脚印往上爬)回复于 2005-01-31 04:18:36 得分 0
给一个验证码参考程序:
ASP.Net实现验证码
-----------------------------------start----------------------------------------------
using System.Drawing;
using System.Drawing.Imaging;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//RndNum是一个自定义函数
string VNum=RndNum(4); //这里的数字4代表显示的是4位的验证字符串!
Session["VNum"]=VNum;
ValidateCode(VNum);
}
//生成图像函数
private void ValidateCode(string VNum)
{
int Gheight=(int)(VNum.Length * 11.5);
//gheight为图片宽度,根据字符长度自动更改图片宽度
System.Drawing.Bitmap Img = new System.Drawing.Bitmap(Gheight,20);
Graphics g = Graphics.FromImage(Img);
g.DrawString(VNum,new System.Drawing.Font("Arial",10),new System.Drawing.SolidBrush(Color.Red),3,3);
//在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y)
System.IO.MemoryStream ms=new System.IO.MemoryStream();
Img.Save(ms,System.Drawing.Imaging.ImageFormat.Png);
Response.ClearContent(); //需要输出图象信息 要修改HTTP头
Response.ContentType="image/Png";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
Img.Dispose();
Response.End();
}
//生成随机数函数中从Vchar数组中随机抽取
//字母区分大小写
public string RndNum(int VcodeNum)
{
string Vchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z" ;
string[] VcArray = Vchar.Split(',') ;
string VNum = "" ;//由于字符串很短,就不用StringBuilder了
int temp = -1 ;//记录上次随机数值,尽量避免生产几个一样的随机数
//采用一个简单的算法以保证生成随机数的不同
Random rand =new Random();
for ( int i = 1 ; i < VcodeNum+1 ; i++ )
{
if ( temp != -1)
{
rand =new Random(i*temp*unchecked((int)DateTime.Now.Ticks));
}
//int t = rand.Next(35) ;
int t=rand.Next(35);
if (temp != -1 && temp == t)
{
return RndNum( VcodeNum );
}
temp = t ;
VNum += VcArray[t];
}
return VNum ;
}
-----------------------------------end--------------------------------------------
下面是Login.Aspx在在调用提交按钮的响应事件中
public void doit(object sender, System.EventArgs e)
{
if(Page.IsValid)
{
string VNum;
VNum=Session["VNum"].ToString();
ViewState["VNum"]=VNum;
if(this.Vcode.Text==ViewState["VNum"].ToString())
{
Hover.Manage.CheckLogin obj=new Hover.Manage.CheckLogin();
string name=username.Text;
string password=FormsAuthentication.HashPasswordForStoringInConfigFile(pass.Text.ToString(),"md5");
if(!obj.checklogin(name,password))
{
Response.Redirect("../Error.aspx?action=Errorlogin");
Response.End();
return;
}
else
{
Session.Add("adminname",name);
Session.Add("adminpass",password);
Response.Redirect("Default.aspx");
Response.End();
return;
}
}
else
{
Response.Write("<script>alert(\"请输入正确的附加码!\");</script>");
}
}
}
如果提交过来的验证字符串正确就验证是否是合法用户!
否则弹出提示返回登陆页!你也可以简化此页!
if(this.Vcode.Text==ViewState["VNum"].ToString())
{
Response.Write("验证码正确");
}
else
{
Response.Write("验证码错误!");
}
Top
4 楼yyne(一步一个脚印往上爬)回复于 2005-01-31 04:18:59 得分 5
http://www.codeproject.com/aspnet/CaptchaImage.asp
http://blog.csdn.net/laojievip/archive/2004/10/22/146781.aspx
这上面有详细说明和方法,对你思路肯定有帮助
Preventing Automated Web Site Registrations:
http://www.dotnetbips.com/displayarticle.aspx?id=275Top




