Two Factor Authentication

  • Bruce Armstrong
  • Bruce Armstrong's Avatar Code Author
  • Away
More
5 years 5 months ago - 10 months 1 week ago #247 by Bruce Armstrong
Bruce Armstrong created the code: Two Factor Authentication
Sample code showing how to do two factor authentication using PowerBuilder

This message has an attachment file.
Please log in or register to see it.

Last Edit: 10 months 1 week ago by Bruce Armstrong. Reason: Updating code to work with PowerServer and correct timestamp structure defintion

Please Log in or Create an account to join the conversation.

  • Bruce Armstrong
  • Bruce Armstrong's Avatar Code Author
  • Away
More
4 years 4 months ago - 4 years 4 months ago #289 by Bruce Armstrong
Bruce Armstrong replied the code: Two Factor Authentication
>>can you implement this when you want to send emails from powerbuilder using google with smtp? Thanks a lot.

This has nothing to do with Google mail. If you're looking for code to send Google email from PowerBuilder I suggest you look at this code sample which does it through .Net called from PowerBuilder ( community.appeon.com/index.php/codeexcha...56-net-importer-demo ) or the PBNISMTP utility, which does it through PBNI ( github.com/bruce-armstrong/pbnismtp )
Last Edit: 4 years 4 months ago by Bruce Armstrong.

Please Log in or Create an account to join the conversation.

More
4 years 4 months ago #288 by Thierry Garrigues
Thierry Garrigues replied the code: Two Factor Authentication
Hi Bruce.
Regarding two-factor authentication with Google, could you explain which Google web APIs to call to connect to a Google account?
Thank you
Regards

Please Log in or Create an account to join the conversation.

More
4 years 5 months ago #287 by Guillermo Rolando
Guillermo Rolando replied the code: Two Factor Authentication
Hi,
can you implement this when you want to send emails from powerbuilder using google with smtp? Thanks a lot.

Please Log in or Create an account to join the conversation.

  • Bruce Armstrong
  • Bruce Armstrong's Avatar Code Author
  • Away
More
5 years 2 months ago #264 by Bruce Armstrong
Bruce Armstrong replied the code: Two Factor Authentication
>>I have it setup as a local external function
>>subroutine DoDragDrop ( string Files ) library "dragdropdemo.dll"

That's not how you use a .Net assembly from PowerBuilder. Please review the original article, because it indicates how you need to do it.

Better yet, just wait for 2019 R2. An enhancement in that version will allow you to consume a .Net assembly without having to do the plumbing required through the technique I provided in that article.

Please Log in or Create an account to join the conversation.

More
5 years 2 months ago #263 by Rick Domogalik
Rick Domogalik replied the code: Two Factor Authentication
I was able to get the C# assembly compiled. When I call DoDragDrop() from PowerBuilder I get an error calling the external function DoDragDrop.

I have it setup as a local external function
subroutine DoDragDrop ( string Files ) library "dragdropdemo.dll"

dragdropdemo.dll is in the local directory where the program files are.

in a clicked event of a button (for test purposes)
dodragdrop( "c:\pdf\1.pdf")

On the click I get the error. "Error calling external function DoDragDrop at line 3 in clicked event of object cb_1.

Here is the C# code I am using. Pretty much the same as what you posted below. I did change DoDragandDrop to just DoDragDrop so it would match control.dodragDrop below. Not sure if this is correct, but trying it both ways lends the same error. I was able to compile this in SnapDevelop when I installed the new .NET 3.0 that just came out and reference the assembly System.Windows.Forms.

using System;
using System.Windows.Forms;
using System.Collections.Specialized;

namespace DragDropDemo
{

public class DragDrop
{
public void DoDragDrop(string filename)
{
StringCollection files = new StringCollection();
files.Add(filename);
DataObject dataObject = new DataObject();
dataObject.SetFileDropList(files);
Control control = new System.Windows.Forms.Control();
control.DoDragDrop(dataObject, System.Windows.Forms.DragDropEffects.Copy);
}
}
}


Any help would be much appreciated. Brand new to C# and the struggle is real.....

Rick

Please Log in or Create an account to join the conversation.

  • Bruce Armstrong
  • Bruce Armstrong's Avatar Code Author
  • Away
More
5 years 2 months ago #260 by Bruce Armstrong
Bruce Armstrong replied the code: Two Factor Authentication
Ah, need to make a correction in my last response. I forgot that the solution I provided references Windows.Forms (even for the CCW used by native PowerBuilder). The SnapDevelop IDE that Appeon provides only targets .Net Core and .Net Standard. Windows Form is (not yet) part of .Net Core or .Net Standard. There is a preview of .Net Core 3.0 available that includes it, but for now that means we can't use SnapDevelop. It also means we can't use Visual Studio Code either.

In any event, here's that C# code I had for the PowerBuilder CCW, but in plain C# rather than the modified syntax that PowerBuilder.Net used. If you're using Visual Studio, you just add a reference to the Windows.Forms assembly and use code similar to this:

using System;
using System.Windows.Forms;
using System.Collections.Specialized;

namespace DragAndDropDemo
{
public class DragAndDrop
{
public void DoDragAndDrop(string filename)
{
StringCollection files = new StringCollection();
files.Add(filename);
DataObject dataObject = new DataObject();
dataObject.SetFileDropList ( files ) ;
Control control = new System.Windows.Forms.Control();
control.DoDragDrop(dataObject, System.Windows.Forms.DragDropEffects.Copy);
}
}
}

I did verify it compiles. I didn't go as far as to create it as a CCW or attempt to use it.

Please Log in or Create an account to join the conversation.

More
5 years 2 months ago #259 by Rick Domogalik
Rick Domogalik replied the code: Two Factor Authentication
Bruce,

Thanks for the response. After some checking I have determined that the version of PowerBuilder I subscribe to does not include the C# editor. I can upgrade to the Cloud version and get it, just not sure if that is the correct course to take. I also checked into Visual Studio Code. I am very comfortable coding in PowerBuilder, but Visual studio Code seems like a steep learning curve to get up to speed on for me. In your opinion, would using the C# editor from Appeon be easier for someone who is familiar with PowerBuilder? Just trying to determine the best way to move forward with my project and either get up to speed with Visual Studio or Upgrade to the Cloud account with Appeon and use their C# editor.

Also, would you happen to have any examples of the assemblies to enable the drag/drop functionality with PowerBuilder and Windows Explorer? I tend to learn best looking at an example piece of code.

Thanks for your help!

Rick

Please Log in or Create an account to join the conversation.

  • Bruce Armstrong
  • Bruce Armstrong's Avatar Code Author
  • Away
More
5 years 2 months ago #258 by Bruce Armstrong
Bruce Armstrong replied the code: Two Factor Authentication
It's just standard C# code. I did it in PowerBuilder.Net at the time because I assumed readers at that time would have that available to them.

PowerBuilder 2019 has it's own C# editor, and you can create assemblies there as well. I'd recommend trying that.

You can also use any C# editor of your choosing:
  • Visual Studio ($1200 for first year for Professional)
  • Visual Studio Code (free)
  • JetBrains Rider ($140 for first year)
  • SharpDevelop (free, but may be dead, last release was in 2016)
  • MonoDevelop (free)
  • and others.....

Please Log in or Create an account to join the conversation.

More
5 years 2 months ago #257 by Rick Domogalik
Rick Domogalik replied the code: Two Factor Authentication
Bruce,

This is off this topic but I wanted to ask you a question about an article you wrote about dragging files out of a PowerBuilder app to Windows Explorer.

Here's a link to the article.
blogs.sap.com/2012/10/26/implementing-dr...to-windows-explorer/

I am trying to implement similar functionality to this in PowerBuilder 2019. I don't have access to PowerBuilder.net. At least I don't think I do with the standard subscription. So I don't think I can create the .NET assembly to use as you suggest with a Win32 app.

Is there a new way to do this (article is 7 years old)? Or am I in need of getting access to PowerBuilder.net? Don't even know if this is still accessible.

Any suggestions would be greatly appreciated!

Rick

Please Log in or Create an account to join the conversation.

  • Bruce Armstrong
  • Bruce Armstrong's Avatar Code Author
  • Away
More
5 years 5 months ago #253 by Bruce Armstrong
Bruce Armstrong replied the code: Two Factor Authentication
Well, Google Image Charts, despite the notices that it was shutdown, appears to still work.

A QR code is a QR code, so it really doesn't matter how you generate it. The discussion forums indicate that www.image-charts.com/ is a drop in replacement for Google Image Charts. It does cost money though. There are also other free qr code api services such as goqr.me/api/

Please Log in or Create an account to join the conversation.

Moderators: Appeon Administrator