读书人

C#过后密保重复执行求教

发布时间: 2012-10-20 14:12:47 作者: rapoo

C#随即密保重复执行,求教
随机密保:    G7--H1--C2
页面是是这样的
//产生随即数字密保
public void sjmb()
{

string[] s = { "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9",
"B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9",
"C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9",
"D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9",
"E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9",
"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9",
"G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9",
"H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9",
"I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8", "I9"};

Random rnd = new Random();
int i1 = rnd.Next(0, s.Length - 1);
int i2 = rnd.Next(0, s.Length - 1);
int i3 = rnd.Next(0, s.Length - 1);
s1 = s[i1];
s2 = s[i2];
s3 = s[i3];
Lab_sjmb.Text = s1.ToString() + "--" + s2.ToString() + "--" + s3.ToString();


}


protected void Page_Load(object sender, EventArgs e)
{
sjmb();
}

这样页面生成的时候,就能得到一串的随机密保号,比如G7--H1--C2

然后点击登录按钮
card.CardID = staff.Cad;
DataSet ds3 = card.SelFindCardRandom3(s1, s2, s3);
string mb1 = ds3.Tables[0].Rows[0][s1].ToString();
string mb2 = ds3.Tables[0].Rows[0][s2].ToString();
string mb3 = ds3.Tables[0].Rows[0][s3].ToString();
string mbmm = mb1.ToString() + mb2.ToString() + mb3.ToString();
if ( this.text_mibao.Text == mbmm)
{
//登录实现
}


问题是mbmm的值,和this.text_mibao.Text 一直不相等,应该是随机sjmb(); 又生成了一次,应该怎么改?


[解决办法]
按钮是服务端组件,点击后会引起页面重新加载,又再次执行了Page_Load,加上判断如下

C# code
    protected void Page_Load(object sender, EventArgs e)    {        if (!Page.IsPostBack)        {                sjmb();           }    } 

读书人网 >C#

热点推荐