0
我想在一個會話中生成彼此不同的驗證碼?在一個會話中生成不同的驗證碼
例如: 我有一個應用程序表單,在用戶可以繼續下一步之前有一個驗證碼。問題是,如果我在新窗口選項卡中打開另一個相同的應用程序表單,它將生成與第一個應用程序表單相同的驗證碼。我需要的是不同的驗證碼值。
幫我解決這個問題,請... TQ
我使用asp.net。
這裏的示例代碼
來生成代碼
private string GenerateRandomCode()
{
string s = "";
for (int i = 0; i < 6; i++)
s = String.Concat(s, random.Next(10).ToString());
return s;
}
以生成驗證碼圖像
namespace OneStepContactMe.Layouts.OneStepContactMe
{
public partial class captchapage : UnsecuredLayoutsPageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session["Map"] == null)
{
Session["Map"] = GenerateRandomCode();
}
// Create a CAPTCHA image using the text stored in the Session object.
CaptchaImage ci = new CaptchaImage(this.Session["Map"].ToString(), 200, 50, "Century Schoolbook");
// Change the response headers to output a JPEG image.
this.Response.Clear();
this.Response.ContentType = "image/jpeg";
// Write the image to the response stream in JPEG format.
ci.Image.Save(this.Response.OutputStream, ImageFormat.Jpeg);
// Dispose of the CAPTCHA image object.
ci.Dispose();
}
else {
}
}
/// <summary>
/// generate random 6 digit
/// </summary>
/// <returns> string of 6 digits </returns>
private string GenerateRandomCode()
{
Random random = new Random();
string s = "";
for (int i = 0; i < 6; i++)
s = String.Concat(s, random.Next(10).ToString());
return s;
}
//to allow anonymous access to this pages
protected override bool AllowAnonymousAccess
{
get
{
return true;
}
}
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
this.MasterPageFile = "/_catalogs/masterpage/MyCorridor.MemberArea.v1.master";
}
}
雖然在總體上是好的建議,這不會幫助這裏:ASP.NET中的類重新創建爲每個請求,所以仍然會有一個新的'Random'爲每個請求。 – Rawling