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();
}
}