baranbahari1320
چهارشنبه 06 دی 1391, 13:11 عصر
سلام من سورس کد مربوط به تصاویر امنیتی رو بر اساس آموزش سایت آقای دلشاد نوشتم.
اما الان در حین اجرا از خط کد زیر ایراد میگیره هر چی به فکرم رسیده رو امتحان کردم اما هیچ جوابی نگرفتم اگه منو راهنمایی کنین ممنون.
فقط توضیحات یه کم ساده باشه چون من تازه با asp.netآشنا شدم و هنوز خیلی به امکاناتش وارد نیستم.
ممنون.
خطی که ایراد میگیره اینه:
bmp.Save(path,ImageFormat.Gif);
اینم هم کدها
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string salt = CreateImage(Server.MapPath(@"temp/") + "temp.gif", 60, 100);
Image1.ImageUrl = "temp/temp.gif";
Session["salt"] = salt;
}
}
protected void Button2_Click(object sender, EventArgs e)
{
if (TextBox7.Text ==(Convert.ToString(Session["salt"])))
Response.Write("OK");
else
Response.Write("Error");
}
public string createsalt()
{
Random rand = new Random();
return (Convert.ToString(rand.Next(10000, 99999)));
}
string CreateImage(string path, int height, int width)
{
Random r = new Random();
string salt = createsalt();
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmp);
g.TextRenderingHint = TextRenderingHint.AntiAlias;
g.Clear(Color.White);
System.Drawing.Drawing2D.Matrix mymat = new System.Drawing.Drawing2D.Matrix();
for (int i = 0; i < salt.Length; i++)
{
mymat.Reset();
mymat.RotateAt(r.Next(-30, 0), new PointF(width * (0.12f * i), height * 0.5f));
g.Transform = mymat;
g.DrawString(salt[i].ToString(), new Font("Comic Sans MS", 16, FontStyle.Italic),
Brushes.Brown, width * (0.15f * i), height * 0.5f);
g.ResetTransform();
}
bmp.Save(path,ImageFormat.Gif);
g.Dispose();
bmp.Dispose();
g.Dispose();
bmp.Dispose();
return salt;
}
private string GenerateCode()
{
Random r = new Random((int)DateTime.Now.Millisecond);
int maxNumber = 0;
int numberCodeQuantity = 0, alphabeticCodeQuantity = 0;
string code = String.Empty;
maxNumber = r.Next(6, 7);
numberCodeQuantity = 1;
alphabeticCodeQuantity = maxNumber - numberCodeQuantity;
for (int i = 1; i <= numberCodeQuantity; ++i)
{
code += ((char)r.Next(48, 57)).ToString();
}
for (int i = 1; i <= alphabeticCodeQuantity; ++i)
{
code += ((char)r.Next(65, 90)).ToString();
}
return code;
}
لینک سایت آقای دلشادم میذارم:http://how2learnasp.net/article.aspx?code=c4331098-7fa8-4de3-9c2e-fd9f5d10f90f
اما الان در حین اجرا از خط کد زیر ایراد میگیره هر چی به فکرم رسیده رو امتحان کردم اما هیچ جوابی نگرفتم اگه منو راهنمایی کنین ممنون.
فقط توضیحات یه کم ساده باشه چون من تازه با asp.netآشنا شدم و هنوز خیلی به امکاناتش وارد نیستم.
ممنون.
خطی که ایراد میگیره اینه:
bmp.Save(path,ImageFormat.Gif);
اینم هم کدها
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string salt = CreateImage(Server.MapPath(@"temp/") + "temp.gif", 60, 100);
Image1.ImageUrl = "temp/temp.gif";
Session["salt"] = salt;
}
}
protected void Button2_Click(object sender, EventArgs e)
{
if (TextBox7.Text ==(Convert.ToString(Session["salt"])))
Response.Write("OK");
else
Response.Write("Error");
}
public string createsalt()
{
Random rand = new Random();
return (Convert.ToString(rand.Next(10000, 99999)));
}
string CreateImage(string path, int height, int width)
{
Random r = new Random();
string salt = createsalt();
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmp);
g.TextRenderingHint = TextRenderingHint.AntiAlias;
g.Clear(Color.White);
System.Drawing.Drawing2D.Matrix mymat = new System.Drawing.Drawing2D.Matrix();
for (int i = 0; i < salt.Length; i++)
{
mymat.Reset();
mymat.RotateAt(r.Next(-30, 0), new PointF(width * (0.12f * i), height * 0.5f));
g.Transform = mymat;
g.DrawString(salt[i].ToString(), new Font("Comic Sans MS", 16, FontStyle.Italic),
Brushes.Brown, width * (0.15f * i), height * 0.5f);
g.ResetTransform();
}
bmp.Save(path,ImageFormat.Gif);
g.Dispose();
bmp.Dispose();
g.Dispose();
bmp.Dispose();
return salt;
}
private string GenerateCode()
{
Random r = new Random((int)DateTime.Now.Millisecond);
int maxNumber = 0;
int numberCodeQuantity = 0, alphabeticCodeQuantity = 0;
string code = String.Empty;
maxNumber = r.Next(6, 7);
numberCodeQuantity = 1;
alphabeticCodeQuantity = maxNumber - numberCodeQuantity;
for (int i = 1; i <= numberCodeQuantity; ++i)
{
code += ((char)r.Next(48, 57)).ToString();
}
for (int i = 1; i <= alphabeticCodeQuantity; ++i)
{
code += ((char)r.Next(65, 90)).ToString();
}
return code;
}
لینک سایت آقای دلشادم میذارم:http://how2learnasp.net/article.aspx?code=c4331098-7fa8-4de3-9c2e-fd9f5d10f90f