Для OWIN для Redis для
Привет,
Я занимаюсь разработкой приложения web-сервиса .Чистый фреймворк 4.5 / веб-API 2, и я использую OWIN в целях проверки подлинности и авторизации.
Итак, для этого приложения нам нужно решение балансировки нагрузки, а затем мы настраиваем его, как вы знаете, после этого токены пользователей не работают должным образом. Потому что если пользователь берет токен с сервера а, то не может использовать его на сервере В.
Из-за этого мне нужно использовать Redis с Redis OWIN каждого приложения сохранит аутентификацию в redis
Спасибо.
Что я уже пробовал:
Я использовал https://github.com/ziyasal/Owin.Security.RedisTokenProviders этот пакет, но он не помогает. Наверное, я что-то упускаю.
Вот мой метод настройки при запуске.cs
public void Configuration(IAppBuilder appBuilder) { HttpConfiguration httpConfiguration = new HttpConfiguration(); httpConfiguration.DependencyResolver = new NinjectResolver(NinjectWebCommon.CreateKernel()); ConfigureOAuth(appBuilder); WebApiConfig.Register(httpConfiguration); appBuilder.UseWebApi(httpConfiguration); }
и мой серверный вариант в том же классе
OAuthAuthorizationServerOptions oAuthAuthorizationServerOptions = new OAuthAuthorizationServerOptions() { TokenEndpointPath = new Microsoft.Owin.PathString("/signin"), AccessTokenExpireTimeSpan = TimeSpan.FromHours(1), AllowInsecureHttp = true, Provider = new SimpleAuthorizationServerProvider(), RefreshTokenProvider = new RedisRefreshTokenProvider(new ProviderConfiguration { ConnectionString = "12.0.0.145:6379", Db = 0, ExpiresUtc = DateTime.UtcNow.AddMinutes(5), AbortOnConnectFail = true }) };
Gerry Schmitz
Вы "развиваетесь" и (уже) нуждаетесь в "балансировщике нагрузки" .... Что вы "балансируете"?
David_Wimbley
Одним из вариантов, который я выбрал, было переопределение ключа машины через web.config, поэтому, если вы получили токен с сервера A, он будет работать на сервере B.
Пример: обратите внимание, что это не мой машинный ключ, я просто сгенерировал новый для этой цели.
<system.web> <compilation debug="true" targetFramework="4.6.1"/> <httpRuntime targetFramework="4.6"/> <machineKey validationKey="DF81295AD0E82DBD0893CFFE4BA71D41C964D3A4AFD27887A36A8C3018C55FB71D524A7107FF27A2BC15CF9B22C5611C4D64308B1F3D039E0269A7461CE70853" decryptionKey="927FFC06AD876B9442AF184E8DAC1B58DEE2E313593B113258551F7B76D19610" validation="SHA1" decryption="AES" /> </system.web>