Вы можете передать обратный вызов и вызвать обратный вызов внутри асинхронного вызова
примерно так:
class func getGenres(completionHandler: (genres: NSArray) -> ()) {
...
let task = session.dataTaskWithURL(url) {
data, response, error in
...
resultsArray = results
completionHandler(genres: resultsArray)
}
...
task.resume()
}
, а затем вызвать этот метод:
override func viewDidLoad() {
Bookshop.getGenres {
genres in
println("View Controller: \(genres)")
}
}
Обычно проверка подлинности на основе ролей прекращается, когда oidc / oauth2 находится на месте из-за точного конфликта, который вы описываете. Если не все ваши веб-приложения / API будут уважать центральные роли, которые вы бы определили в своей идентичности asp.net - тогда будет мало или нет никакой выгоды, включая их в токен доступа.
Если вы планируете использовать центральную ролевую систему, которую ваши другие приложения будут уважать, и основывать свою авторизацию - тогда я бы рекомендовал установить идентификацию asp.net с Identity Server 4 в одной базе данных, создав Identity Resource для «ролей» и включения пользовательских ролей в качестве утверждения в токене, когда клиент запрашивает область «ролей».