usingSystem;usingSystem.IO;usingSystem.Security.Cryptography.X509Certificates;usingFunq;usingServiceStack;usingServiceStack.Auth;usingServiceStack.Caching;usingServiceStack.Data;usingServiceStack.OrmLite;namespaceIdentity{//VS.NET Template Info: https://servicestack.net/vs-templates/EmptyAspNetpublicclassAppHost:AppHostBase{/// <summary>/// Base constructor requires a Name and Assembly where web service implementation is located/// </summary>publicAppHost():base("Identity",typeof(AppHost).Assembly){}/// <summary>/// Application specific configuration/// This method should initialize any IoC resources utilized by your web service classes./// </summary>publicoverridevoidConfigure(Containercontainer){//Store UserAuth in SQL Server// var dbFactory = new OrmLiteConnectionFactory(// AppSettings.GetString("SQL"),// SqlServerDialect.Provider);vardbFactory=newOrmLiteConnectionFactory(":memory:",SqliteDialect.Provider);container.Register<IDbConnectionFactory>(dbFactory);container.Register<IAuthRepository>(c=>newOrmLiteAuthRepository(dbFactory){UseDistinctRoleTables=true});container.Resolve<IAuthRepository>().InitSchema();//Also store User Sessions in SQL Servercontainer.RegisterAs<OrmLiteCacheClient,ICacheClient>();container.Resolve<ICacheClient>().InitSchema();varprivateKey=RsaUtils.CreatePrivateKeyParams(RsaKeyLengths.Bit2048);varprivateKeyXml=privateKey.ToPrivateKeyXml();// just for testing, create a privateKeyXml on every instancePlugins.Add(newAuthFeature(()=>newAuthUserSession(),newIAuthProvider[]{newJwtAuthProvider{HashAlgorithm="RS256",#if (DEBUG)RequireSecureConnection=false,#endifPrivateKeyXml=privateKeyXml},newLegacyAuthProvider(),}){IsValidUsernameFn=s=>IsValidUsernameFn(s)});Plugins.Add(newRegistrationFeature());}boolIsValidUsernameFn(strings){// all names are ok for the momentreturntrue;}}}