日期:2014-05-17  浏览次数:20527 次

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(); 又生成了一次,应该怎么改?

------解决方案--------------------
你把s等值保存在seesion中,因为页面刷新后,就清空变量值了