Sending SMTP Mail With Authentication with ASP.Net

by demtron on Monday, March 02, 2009 05:14 PM

Many web hosting now require sender authentication when sending e-mail through a relay server.  These mail servers have their security locked down.  Sometimes, localhost is an available SMTP server option, but if a relay server is required, a little extra code is also required.

ASP.Net offers the NetworkCredential class for this purposes.  By setting the NetworkCredential property in the SMTPClient object with the appropriate credentials, authentication can be passed with the request.  For example:

Dim smtp As New Net.Mail.SmtpClient
Dim m As New Net.Mail.MailMessage
m.Subject = "the subject"
m.From = New Net.Mail.MailAddress("email@domainname.com")
m.To.Add("john@demtron.com")
Dim Auth As New System.Net.NetworkCredential("email@domainname.com", "password")
smtp.UseDefaultCredentials = False
smtp.Credentials = Auth
smtp.Host = "smtp.domainname.com"
smtp.Send(m) 

Storing XML in Cookies and "dangerous Request.Cookies value" in ASP.Net

by demtron on Saturday, February 28, 2009 05:32 PM

By design, when attempting to store XML data in a cookie, the .Net Framework will raise the a HttpRequestValidationException because request validation is enabled according to Microsoft.  This is a good security mechanism to help avoid script submissions via HTTP.  Rather than turning off validation, one way to eliminate problem is to use HttpUtility.UrlEncode and HttpUtility.UrlDecode to replace suspicious characters with acceptable characters.  For example, to store an XML string to a cookie, one could use the following code:

HttpContext.Current.Response.Cookies.Set(New HttpCookie("Books", HttpUtility.UrlEncode(XMLstring)))
 


Dynamic Column Creation Problem with Telerik RadGrid

by demtron on Monday, February 02, 2009 10:04 AM

As part of a large eCommerce project, I needed to be able to extend a grid control into a custom control and dynamically add columns.  I needed to change the order of events that determined when and how columns would be added.  After a rather large modification of several hundred lines of code, I found that the grid would throw  errors such as "Cannot create column with the specified type name".  AJAX sorting, filtering, and refreshes threw this error every time after the initial grid display.  This vexed me for over two days until I found the Telerik forums post at http://www.telerik.com/community/forums/aspnet-ajax/grid/dynamic-creation-of-columns.aspx.  The solution was to set the EnableColumnsViewState property of the MasterTableView to false and create the columns on Page.Init or on each Page.Load.

Sometimes, the easiest changes fix the most hair-pulling problems.  :-)


Thread aborted using Response.Redirect in ASP.Net

by demtron on Monday, February 02, 2009 08:13 AM

I added a Response.Redirect to a .Net Web page and began receiving a "Thread was being aborted" error on a line of code that executed Response.Redirect.  Without really considering it, this error made sense based on the place where I added the code.

Response.Redirect will call Response.End by design.  However, this will also raise a ThreadAbortException.  In my case, it was because the redirect line was within a try...catch block.  I found two ways to handle this:

  1. Change Response.Redirect(<URL>) to Response.Redirect(<URL>, false)
  2. Move the line to outside the try...catch block
I ended up using method #2, but both options worked for me.

Powered by BlogEngine.NET 1.5.1.18
Theme by Mads Kristensen · Adapted by Demtron

Bookmark and Share

Calendar

<<  November 2014  >>
MoTuWeThFrSaSu
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

View posts in large calendar
Log in

Milwaukee SEO Company

Milwaukee Access Programmer/Developer

Milwaukee Website Designer and Developer



Marketing / SEO

Blog Directory
blogarama - the blog directory
TopOfBlogs
Milwaukee area SEO, SEM, ASP.Net