Wpis z mikrobloga

Robię sobie okienkowy program w WPF który "rozmawia" z API na localhoscie. Ponieważ jest mnogość opcji chciałem użyć różnych stron i napotykam problem, bo nie wiem jak autoryzować zapytania na różnych stronach tym samym kluczem. Klucz wyciągam na początku przy uruchomieniu programu. Czy jest możliwość zapisania tego jako jakaś globalna zmienna?

#csharp #api #programowanie
  • 3
  • Odpowiedz
@unxtres: Ewentualnie w WPF masz w resourcach klasę Settings, w której możesz sobie zdefiniować pole i do niego przypisywać. Masz dostęp praktycznie z każdego miejsca kodu do tego.
  • Odpowiedz
@unxtres: najprościej zrobić sobie interfejs w stylu IAuthProvider, który będziesz wstrzykiwał przez DI z jedną metodą GetToken
Klasę rejestrujesz w kontenerze DI jako singleton.
Klasa ma dwa prywatne property:
string token
DateTime? TokenIssueDateTimeUtc.
i jakiś interwał do odświeżania typu
const int TokenAgeMinutes = 25
Metoda GetToken:
if(token == null or (TokenIssueDateTimeUtc.HasValue && TokenIssueDateTimeUtc.Value.AddMinutes(TOKENAGEMINUTES) <= DateTime.UtcNow))
return token
else
pobierasz nowy token, nabijasz timestamp dla TokenIssueDateTimeUtc jako DateTime.UtcNow, zwracasz token.
  • Odpowiedz