-
Notifications
You must be signed in to change notification settings - Fork 219
asp net
Jean-Marc Prieur edited this page Nov 10, 2020
·
28 revisions
Microsoft.Identity.Web is mostly aimed at ASP.NET Core. However, some of its classes are also available for ASP.NET. These are:
- Token cache serializers and adapters for MSAL.NET
- Constants
- ClaimsPrincipalExtension which add extensions methods to a ClaimsPrincipal
This PR shows how an ASP.NET MVC application was modified to leverage the token cache serializers.
The principle is the same, except that ASP.NET will probably not use dependency injection. You'd probably instantiate the classes yourself in your code.
public static async Task<IConfidentialClientApplication> BuildConfidentialClientApplication()
{
IConfidentialClientApplication clientapp = ConfidentialClientApplicationBuilder.Create(AuthenticationConfig.ClientId)
.WithClientSecret(AuthenticationConfig.ClientSecret)
.WithRedirectUri(AuthenticationConfig.RedirectUri)
.WithAuthority(new Uri(AuthenticationConfig.Authority))
.Build();
// After the ConfidentialClientApplication is created, we overwrite its default UserTokenCache serialization with our implementation
IMsalTokenCacheProvider memoryTokenCacheProvider = CreateTokenCacheSerializer();
await memoryTokenCacheProvider.InitializeAsync(clientapp.UserTokenCache);
return clientapp;
}
with
/// <summary>
/// Implementation based on a Memory cache, But could be Redis, SQL, ...
/// </summary>
/// <returns></returns>
private static IMemoryCache GetMemoryCache()
{
if (memoryCache == null)
{
IOptions<MemoryCacheOptions> options = Options.Create(new MemoryCacheOptions());
memoryCache = new MemoryCache(options);
}
return memoryCache;
}
private static IMemoryCache memoryCache;
private static IMsalTokenCacheProvider CreateTokenCacheSerializer()
{
IOptions<MsalMemoryTokenCacheOptions> msalCacheOptions = Options.Create(new MsalMemoryTokenCacheOptions());
// You can override the options if you wish
MsalMemoryTokenCacheProvider memoryTokenCacheProvider = new MsalMemoryTokenCacheProvider(GetMemoryCache(), msalCacheOptions);
return memoryTokenCacheProvider;
}
See Token cache serialization for details on the other token cache providers/serializers
- Home
- Why use Microsoft Identity Web?
- Web apps
- Web APIs
- Using certificates
- Minimal support for .NET FW Classic
- Logging
- Azure AD B2C limitations
- Samples
- Web apps
- Web app samples
- Web app template
- Call an API from a web app
- Managing incremental consent and conditional access
- Web app troubleshooting
- Deploy to App Services Linux containers or with proxies
- SameSite cookies
- Hybrid SPA
- Web APIs
- Web API samples
- Web API template
- Call an API from a web API
- Token Decryption
- Web API troubleshooting
- web API protected by ACLs instead of app roles
- gRPC apps
- Azure Functions
- Long running processes in web APIs
- Authorization policies
- Generic API
- Customization
- Logging
- Calling graph with specific scopes/tenant
- Multiple Authentication Schemes
- Utility classes
- Setting FIC+MSI
- Mixing web app and web API
- Deploying to Azure App Services
- Azure AD B2C issuer claim support
- Performance
- specify Microsoft Graph scopes and app-permissions
- Integrate with Azure App Services authentication
- Ajax calls and incremental consent and conditional access
- Back channel proxys
- Client capabilities