Skip to content

Latest commit

 

History

History
102 lines (72 loc) · 3.56 KB

wpf-winforms.md

File metadata and controls

102 lines (72 loc) · 3.56 KB
title name hybrid language framework image tags snippets alias
WPF and Winforms Tutorial
WPF / Winforms
false
Javascript
C#
WPF
WinForms
/media/platforms/asp.png
quickstart
dependencies setup use
native-platforms/wpf-winforms/dependencies
native-platforms/wpf-winforms/setup
native-platforms/wpf-winforms/use
wpf
wiforms
rich-client-application
rich-client

WPF and Winforms Tutorial

::: panel-info System Requirements This tutorial and seed project have been tested with the following:

  • Microsoft Visual Studio 2015
  • .NET Framework 4.5.2 :::

This tutorial explains how to integrate Auth0 with a WPF or Winforms application. Auth0.WinformsOrWPF helps you authenticate users with any Auth0 supported identity provider.

Tutorial

1. Install Auth0.WinformsOrWPF NuGet package

Use the NuGet Package Manager (Tools -> Library Package Manager -> Package Manager Console) to install the Auth0.WinformsOrWPF package, running the command:

${snippet(meta.snippets.dependencies)}

2. Setting up the callback URL in Auth0

Go to the Application Settings section in the Auth0 dashboard and make sure that Allowed Callback URLs contains the following value:

https://${account.namespace}/mobile

3. Integration

There are three options to do the integration:

  1. Using Auth0 Lock inside a Web View (this is the simplest with only a few lines of code required).
  2. Creating your own UI (more work, but higher control the UI and overall experience).
  3. Using specific user name and password.

Option 1: Authentication using Lock

To start with, we'd recommend using Lock. Here is a snippet of code to copy & paste on your project. Since we are using await (.NET 4.5 or greater), your method needs to be async:

${snippet(meta.snippets.setup)}

${snippet(meta.snippets.use)}

For WPF apps you should use auth0.LoginAsync(new WindowWrapper(new WindowInteropHelper(this).Handle)) instead of auth0.LoginAsync(this)

Option 2: Authentication with your own UI

If you know which identity provider you want to use, you can add a connection parameter and the user will be sent straight to the specified connection:

var user = await auth0.LoginAsync(this, "auth0waadtests.onmicrosoft.com") // connection name here

connection names can be found on Auth0 dashboard. E.g.: facebook, linkedin, somegoogleapps.com, saml-protocol-connection, etc.

Option 3: Authentication with specific user name and password

var user = await auth0.LoginAsync(
	"my-db-connection", 	// connection name here
	"username",
	"password");

Accessing user information

The Auth0User has the following properties:

  • Profile: returns a Newtonsoft.Json.Linq.JObject object (from Json.NET component) containing all available user attributes (e.g.: user.Profile["email"].ToString()).
  • IdToken: is a Json Web Token (JWT) containing all of the user attributes and it is signed with your client secret. This is useful to call your APIs and flow the user identity.
  • Auth0AccessToken: the access_token that can be used to access Auth0's API. You would use this for example to link user accounts.

Download the samples

Browse the samples on GitHub from here.

Congratulations!