Ska försöka göra en UserControll som slumpar ut en säkerhetskod som en bild, men får det inte att fungera. Som koden är nu kommer det fram en ladda ner/öppna dialog. Har koden: Hej,problem med spamskydd
<code>
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Ska ha 4 slumpade tecken
string rnd = RndSecurity(4);
Session["security"] = rnd;
// Skapar bilden med de slumpade tecknen
SecurityImage(rnd);
}
private void SecurityImage(string strSecurity)
{
int intHeight = strSecurity.Length * 12;
// Storleken på bilden
Bitmap Img = new Bitmap(intHeight, 25);
Graphics g = Graphics.FromImage(Img);
// Grafiska inställningar
g.Clear(Color.LightSteelBlue);
Font f = new Font("Arial", 12);
SolidBrush s = new SolidBrush(Color.RoyalBlue);
g.DrawString(strSecurity, f, s, 3, 3);
MemoryStream ms = new MemoryStream();
Img.Save(ms, ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType = "images/jpg";
Response.AddHeader("Content-Disposition", "filename=VCode.jpg");
Response.BinaryWrite(ms.ToArray());
g.Dispose();
Img.Dispose();
Response.End();
}
// Slumpar tal eller bokstäver
private string RndSecurity(int number)
{
// Vad som kan slumpas
string strSecurityLine = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
string[] arrSecurity = strSecurityLine.Split(new Char[] { ',' });
string strRandom = "";
Random rand = new Random();
// loopar så många gånger som anges i number
for (int i = 1; i < number + 1; i++)
{
// Slumpar ett tal
int t = rand.Next(34)+1;
// Hämtar från arrayen o sparar i variabel
strRandom += arrSecurity[t];
}
return strRandom;
}
}
</code>
Hur gör jag för att visa bilden på sidan?
Tacksam för all hjälpSv: problem med spamskydd
Med Response.ContentType = "images/jpg"; talar du om att sidan är av typen bild som du sedan streamar ut till besökaren. Eftersom bilden inte är kopplad till någon kontroll som visar den får man en frågon om den ska laddas ner.
Det finns flera sätt att lösa detta, ett vanligt är att man gör en aspx-sida som genererar bilden, liknande den du gjort. Du visar sedan bilden med en vanlig img tag men som sökväg använder du din aspx sida.
<img src="MinDynamiskaBild.aspx">