0

There is almost no documentation for implementing Chargify as the Authentication provider for a vb.net webforms application.

I need to be able to have my customers 1)Browse to my introduction page, 2)Click the register link and be carried to a public signup page at Chargify, 3)Register with First Name, Last Name, Email Address 4)Pay for their subscription, 5)Be sent back to my page as an authenticated user. Chargify provides an API for this and an API key. I just don't know how/where this need to be used. I can find no documentation for this in vb.net webforms. I am currently trying to implement it into the stock template vb.net webforms app in Visual Studio 2017. I think that I have found where to start but am not sure where or how to proceed. Any guidance or a reference/example would be appreciated. Below is where I think I should possibly start.

Public Sub ConfigureAuth(app As IAppBuilder)
        'Configure the db context, user manager and signin manager to use a single instance per request
        app.CreatePerOwinContext(AddressOf ApplicationDbContext.Create)
        app.CreatePerOwinContext(Of ApplicationUserManager)(AddressOf ApplicationUserManager.Create)
        app.CreatePerOwinContext(Of ApplicationSignInManager)(AddressOf ApplicationSignInManager.Create)

        ' Enable the application to use a cookie to store information for the signed in user
        app.UseCookieAuthentication(New CookieAuthenticationOptions() With {
            .AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            .Provider = New CookieAuthenticationProvider() With {
                .OnValidateIdentity = SecurityStampValidator.OnValidateIdentity(Of ApplicationUserManager, ApplicationUser)(
                    validateInterval:=TimeSpan.FromMinutes(30),
                    regenerateIdentity:=Function(manager, user) user.GenerateUserIdentityAsync(manager))},
            .LoginPath = New PathString("/Account/Login")})
        ' Use a cookie to temporarily store information about a user logging in with a third party login provider
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie)

        ' Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
        app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5))

        ' Enables the application to remember the second login verification factor such as phone or email.
        ' Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
        ' This is similar to the RememberMe option when you log in.
        app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie)

        ' Uncomment the following lines to enable logging in with third party login providers
        'app.UseMicrosoftAccountAuthentication(
        '    clientId:= "",
        '    clientSecret:= "")

        'app.UseTwitterAuthentication(
        '   consumerKey:= "",
        '   consumerSecret:= "")

        'app.UseFacebookAuthentication(
        '   appId:= "",
        '   appSecret:= "")

        'app.UseGoogleAuthentication(New GoogleOAuth2AuthenticationOptions() With {
        '   .ClientId = "",
        '   .ClientSecret = ""})
    End Sub

I would like to know where/how to setup authentication via API and Chargify for a vb.net webforms app.

Jamie
  • 555
  • 3
  • 14
  • There is [this](https://developer.chargify.com/content/chargify-direct/signups.html) which describes how to integrate signup/registration directly into your application, using the "chargify direct" version of the API. It also has a section on Authentication which might help you. Did you read these documents? – ADyson Jun 10 '19 at 13:13
  • Yes. I have read that. In fact there is even more documentation [here](https://reference.chargify.com/v1/basics/introduction) but none of it is specific for vb.net or the template web forms app in VS 2017. I really don't need to use Chargify Direct. It is overkill for what I need. I am fine with users signing up on a public sign-up page at Chargify and then being redirected back to my page with authentication using the standard API. – Jamie Jun 10 '19 at 13:36
  • So what? It's a web application just like any other. The code tells you how to integrate your web application with the chargify application using standard web technologies (i.e. HTML forms, HTTP requests etc) which would be present in any web development platform. There's nothing obvious to stop you integrating that with an ASP.NET WebForms scenario - although it's true that it would probably be easier if you were using something more modern like MVC or Razor Pages. What specifically don't you understand? And...are you forced to use WebForms or is that just a choice you made yourself? – ADyson Jun 10 '19 at 13:39
  • " I am fine with users signing up on a public sign-up page at Chargify and then being redirected back to my page with authentication using the standard API." ...well chargify doesn't offer that (i.e. redirection back to your site from theirs) as far as I can see. The Chargify Direct stuff is about the closest you get. In some ways it's actually neater because as far as the user is concerned, everything seems to happen on your site. – ADyson Jun 10 '19 at 13:39
  • I might consider Chargify Direct but it is more complicated and will likely take me longer to implement. I do however think that Chargify supports the scenario that I presented. The reason I say this is because it is described [here](https://help.chargify.com/public-pages/signup-details.html). "You can circumvent the redirect to the signup page by adding a return URL after successful signup. If a redirect is added, the confirmation page will not be shown." I chose webforms because my previous experience is primarily with windows forms/vb. – Jamie Jun 10 '19 at 14:06
  • I see. I was looking more at the API pages. But yes that might work, although it does caveat that each signup page only works with one product. Depends what your needs are, I guess. P.S. Fair enough if you have prior experience with WebForms...but I did WebForms for 10 years or more, then I moved to MVC. It was like the light had dawned, I kid you not. Much easier to work with, and much more like the real web. WebForms was an attempt to shoehorn a desktop event-based UI programming style into a web environment. To say the results are awkward is a huge understatement. MVC is a big step forward. – ADyson Jun 10 '19 at 14:18
  • I might try MVC in the future but for now I have an app that I originally developed as a desktop app and have now converted to a webforms app and I don't want to reconstruct it for MVC at this point. I really just want to deploy it asap. – Jamie Jun 10 '19 at 14:26

0 Answers0