Skip to content

Instantly share code, notes, and snippets.

View mmierzwa's full-sized avatar
🎯
Focusing

Marek Mierzwa mmierzwa

🎯
Focusing
View GitHub Profile
@mmierzwa
mmierzwa / LoginCheckAppStart.cs
Last active April 24, 2017 08:16
Cleaning ADAL token cache on Android and iOS
public class LoginCheckAppStart : MvxNavigatingObject, IMvxAppStart
{
private readonly IApplicationSettings _applicationSettings;
private readonly ISecureStorageService _secureStorage;
public LoginCheckAppStart(IApplicationSettings applicationSettings, ISecureStorageService secureStorage)
{
_applicationSettings = applicationSettings;
_secureStorage = secureStorage;
}
@mmierzwa
mmierzwa / SecureStorageService.cs
Created April 24, 2017 08:14
Cleaning ADAL token cache on Android and iOS
public class SecureStorageService : ISecureStorageService
{
public void RemoveAdalRecords()
{
try
{
var query = new SecRecord(SecKind.GenericPassword);
SecKeyChain.Remove(query);
}
catch (Exception ex)
@mmierzwa
mmierzwa / SecureStorageService.cs
Created April 24, 2017 08:13
Cleaning ADAL token cache on Android and iOS
public class SecureStorageService : ISecureStorageService
{
private const string SharedPreferencesName = "ActiveDirectoryAuthenticationLibrary";
private const string SharedPreferencesKey = "cache";
private static ISharedPreferences SharedPreferences =>
Application.Context.GetSharedPreferences(SharedPreferencesName, FileCreationMode.Private);
public void RemoveAdalRecords()
{
@mmierzwa
mmierzwa / ISecureStorageService.cs
Last active April 24, 2017 08:12
Cleaning ADAL token cache on Android and iOS
public interface ISecureStorageService
{
void RemoveAdalRecords();
}
// in Setup class for iOS project
protected override NinjectDependenciesProvider GetNinjectDependenciesProvider()
{
return new NinjectIosDependenciesProvider();
}
public abstract class NinjectMvxIosSetup : MvxIosSetup
{
protected NinjectMvxIosSetup(IMvxApplicationDelegate applicationDelegate, UIWindow window)
: base(applicationDelegate, window)
{
}
protected NinjectMvxIosSetup(IMvxApplicationDelegate applicationDelegate, IMvxIosViewPresenter presenter) : base(applicationDelegate, presenter)
{
public class NinjectMvxIoCProvider : MvxSingleton<IMvxIoCProvider>, IMvxIoCProvider
{
public bool CanResolve<T>() => //...
public T Create<T>() => // ...
public object GetSingleton(Type type) => //...
public T Resolve<T>() => //...
public abstract class NinjectMvxDroidSetup : MvxAndroidSetup
{
protected NinjectMvxDroidSetup(Context applicationContext) : base(applicationContext)
{
}
protected override void InitializeLastChance()
{
base.InitializeLastChance();
public class NinjectIosDependenciesProvider : NinjectDependenciesProvider
{
protected override IEnumerable<INinjectModule> GetPlatformSpecificModules()
{
return new[] { new IosNinjectModule() };
}
protected override IEnumerable<INinjectModule> GetPortableNinjectModules()
{
return new[] { new CommonDependenciesModule() };
public class NinjectDroidDependenciesProvider : NinjectDependenciesProvider
{
protected override IEnumerable<INinjectModule> GetPlatformSpecificModules()
{
return new[] { new DroidNinjectModule() };
}
protected override IEnumerable<INinjectModule> GetPortableNinjectModules()
{
return new[] { new CommonDependenciesModule() };