|
BOOK: Beginning ASP.NET 3.5 : in C# and VB BOOK ISBN: 978-0-470-18759-3
| This is the forum to discuss the Wrox book Beginning ASP.NET 3.5: In C# and VB by Imar Spaanjaars; ISBN: 9780470187593 |
|
Welcome to the p2p.wrox.com Forums.
You are currently viewing the BOOK: Beginning ASP.NET 3.5 : in C# and VB BOOK ISBN: 978-0-470-18759-3 section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
|
|
|
|
July 12th, 2009, 07:29 AM
|
Authorized User
|
|
Join Date: Apr 2009
Posts: 54
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Chap 15 pg 532
Hello All
I have just done the pg 532 example but I get the following error
SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. 29sm6268268wfg.39
You are probably thinking that I haven't enabledssl="ture"
The thing is that I have done this and that the example from Chapter Nine works.
The code that I have is as follows
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
publicpartialclassSignUp : System.Web.UI.Page
{
protectedvoid Page_Load(object sender, EventArgs e)
{
MailMessage myMessage = newMailMessage();
SmtpClient mySmtpClient = newSmtpClient();
mySmtpClient.Port = 587;
mySmtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword");
mySmtpClient.EnableSsl = true;
}
}
and the web confige file is as follows
Code:
<?xmlversion="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<configSections>
<sectionGroupname="system.web.extensions"type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroupname="scripting"type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionname="scriptResourceHandler"type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/>
<sectionGroupname="webServices"type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionname="jsonSerialization"type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="Everywhere"/>
<sectionname="profileService"type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/>
<sectionname="authenticationService"type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/>
<sectionname="roleService"type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings/>
<connectionStrings>
<addname="PlanetWroxConnectionString1"connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\PlanetWrox.mdf;Integrated Security=True;User Instance=True"providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilationdebug="false">
<assemblies>
<addassembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<addassembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<addassembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<addassembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<addassembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</assemblies>
</compilation>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authenticationmode="Forms"/>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<pagestheme="Monochrome">
<controls>
<addtagPrefix="Wrox"tagName="Banner"src="~/Controls/Banner.ascx"/>
<addtagPrefix="asp"namespace="System.Web.UI"assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<addtagPrefix="asp"namespace="System.Web.UI.WebControls"assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<removeverb="*"path="*.asmx"/>
<addverb="*"path="*.asmx"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<addverb="*"path="*_AppService.axd"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<addverb="GET,HEAD"path="ScriptResource.axd"type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"validate="false"/>
</httpHandlers>
<httpModules>
<addname="ScriptModule"type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compilerlanguage="c#;cs;csharp"extension=".cs"warningLevel="4"type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOptionname="CompilerVersion"value="v3.5"/>
<providerOptionname="WarnAsError"value="false"/>
</compiler>
<compilerlanguage="vb;vbs;visualbasic;vbscript"extension=".vb"warningLevel="4"type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOptionname="CompilerVersion"value="v3.5"/>
<providerOptionname="OptionInfer"value="true"/>
<providerOptionname="WarnAsError"value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
<system.webServer>
<validationvalidateIntegratedModeConfiguration="false"/>
<modules>
<removename="ScriptModule"/>
<addname="ScriptModule"preCondition="managedHandler"type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<removename="WebServiceHandlerFactory-Integrated"/>
<removename="ScriptHandlerFactory"/>
<removename="ScriptHandlerFactoryAppServices"/>
<removename="ScriptResource"/>
<addname="ScriptHandlerFactory"verb="*"path="*.asmx"preCondition="integratedMode"type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<addname="ScriptHandlerFactoryAppServices"verb="*"path="*_AppService.axd"preCondition="integratedMode"type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<addname="ScriptResource"preCondition="integratedMode"verb="GET,HEAD"path="ScriptResource.axd"type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
<runtime>
<assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentityname="System.Web.Extensions"publicKeyToken="31bf3856ad364e35"/>
<bindingRedirectoldVersion="1.0.0.0-1.1.0.0"newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentityname="System.Web.Extensions.Design"publicKeyToken="31bf3856ad364e35"/>
<bindingRedirectoldVersion="1.0.0.0-1.1.0.0"newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.net>
<mailSettings>
<smtpdeliveryMethod="Network"from="Your Name <[email protected]>">
<networkhost="smtp.gmail.com"port="587"userName="stemcell74"password="mypassword"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
Thanks in advance.
tomche
Last edited by tomche; July 18th, 2009 at 07:48 AM..
|
July 12th, 2009, 07:35 AM
|
|
Wrox Author
|
|
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
|
|
Hi there,
Take a look here:
Chapter 15: SendingMail Event
You need to override the standard mail sending behavior of the CreateUserWizard and create an SmtpClient manually that supports SSL.
BTW: if I were you, I'd edit your previous post and remove references to your Gmail user name and password.....
Imar
|
July 13th, 2009, 06:00 AM
|
Authorized User
|
|
Join Date: Apr 2009
Posts: 54
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Hello Imar,
Thanks for your reply.
I went to the site you were talking about but I am a little lost.
I have a few questions
Where exactly do you mean that I should create a handler for the Sending event? In the SignUp.aspx.cs, web.config file or SignUp.aspx code behind?
I am presuming that you mean to set this up in the SignUp.aspx.cs file which I have done as per the code I sent.
If this is to be done through this file then why does my code work in the Chapter Nine example and not in this example as it has been copied and pasted?
Regards
Thomas
|
July 13th, 2009, 07:30 AM
|
|
Wrox Author
|
|
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
|
|
Hi there,
Your previous code works because you are explicitly defining an SmtpClient with EnableSsl set to true.
However, the CreateUserWizard (and other standard controls) can't work with SSL out of the box. Therefore, you need to handle the SendingMail event, get a reference to the Message instance, send it with an explicitly created SmtpClient and then cancel the original action. Try this:
1. Switch the sign up page in Design View
2. Open the Events tab on the Properties Grid and double click the SendingMail event.
3. Add the following code to it (minus the method header)
Code:
protected void CreateUserWizard1_SendingMail(object sender, MailMessageEventArgs e)
{
SmtpClient mySmtpClient = new SmtpClient();
mySmtpClient.EnableSsl = true;
mySmtpClient.Send(e.Message);
e.Cancel = true;
}
This code sends the message with its own SmtpClient with EnableSsl set to true. It uses e.Message which contains the message that .NET otherwise will send on its own. Finally, e.Cancel = true is used to cancel the original message sent by the CreateUserWizard control.
Using SSL is a bit weird with the built-in controls because they don't support SSL. This code is used as a work around for these limitations.
Two other things:
1. When you post code, please use the Remove Text Formatting button on the toolbar. Otherwise all spaces are removed from the code which makes it difficult to read and impossible to use.
2. Consider editing your previous message and remove your user name and password from the code. Anyone visiting this thread can login to your Gmail account.
Hope this helps. If not, please let me know.
Cheers,
Imar
|
July 17th, 2009, 07:44 AM
|
Authorized User
|
|
Join Date: Apr 2009
Posts: 54
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Imar,
After following your instructions I now get the following error
Server Error in Application
A recipient must be specified.
This happend after trying to load the signup.aspx page in firefox.
It doesn't load up the signup page first or allow you to try and use the wizard.
What's haaappppeeenning?
Thanks
Thomas
ps (that isn't the password to my gmail account)
|
July 17th, 2009, 08:03 AM
|
|
Wrox Author
|
|
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
|
|
Shall I delete all mail from your GMail account to prove it *is* your password? ;-)
How does the code you have now look? Can you post the code for the page and code behind?
Imar
|
July 17th, 2009, 08:15 AM
|
Authorized User
|
|
Join Date: Apr 2009
Posts: 54
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Just figured it out
I put
myMessage.To.Add(newMailAddress([email protected]));
I put it under
MailMessage myMessage = newMailMessage();
SmtpClient mySmtpClient = newSmtpClient();
Works now.
Cheers
Thomas
|
July 17th, 2009, 08:19 AM
|
Authorized User
|
|
Join Date: Apr 2009
Posts: 54
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Imar,
In the instructions that you gave you said to open the properties of the createuser wizard and double click on the sending mail event.
This produces a blank window.
Is this where you wanted code inserted?
Can you usually do this or is it a problem with express edition users or something.
It doesn't take code.
Cheers
Thomas
|
July 17th, 2009, 09:02 AM
|
|
Wrox Author
|
|
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
|
|
Hi there,
Your password is still in there..... It's your account, but if I were you i'd change it.
What do you mean with a blank screen? Where exactly do you double-click and what do you see? What are the steps you're following?
Imar
|
March 31st, 2010, 11:25 AM
|
Authorized User
|
|
Join Date: Dec 2009
Posts: 13
Thanks: 1
Thanked 0 Times in 0 Posts
|
|
hi, Imar
I exactly had the same issue, and i did as mentioned in thread no 4, and it works completely fine now.
besides, i get little bit confused over, e.cancel=true;
why do we need to take that action? pls explain me, i did not understand it properly.
Arya
|
Similar Threads
|
Thread |
Thread Starter |
Forum |
Replies |
Last Post |
listing 15-15 pg(568) |
DyerOppenheimer |
BOOK: Professional ASP.NET 2.0 and Special Edition; ISBN: 978-0-7645-7610-2; ISBN: 978-0-470-04178-9 |
0 |
February 13th, 2008 01:41 PM |
return *this - Chap 8 pg 418 |
proslambano |
BOOK: Ivor Horton's Beginning Visual C++ 2005 |
0 |
March 10th, 2007 01:19 PM |
chap 15 |
manal_sag |
BOOK: Beginning ASP 3.0 |
2 |
July 10th, 2005 03:29 AM |
help in chap 15 |
manal_sag |
BOOK: Beginning ASP 3.0 |
2 |
May 25th, 2005 02:59 AM |
Sessions - Chap 15 |
mminnie |
BOOK: Professional PHP 5 ISBN: 978-0-7645-7282-1 |
1 |
January 10th, 2005 04:25 AM |
|
|