Делаете ли вы это на каждом уровне или только в пользовательских интерфейсах / сервисах
Аутентификация (authN) и / или авторизация (authZ) должна выполняться "ближе всего" кресурсы, что означает, что вы должны выполнять authN и authZ на каждом уровне - это соответствует стратегии глубокой защиты.Всегда предполагайте, что «вызывающий» был скомпрометирован, поэтому вам нужно проверить и подтвердить личность вызывающего.
Используете ли вы решение для домашнего приготовления или есть какие-либо стандартные способы?
Обычно хорошей идеей является использование стандартных способов, если вы не уверены в надежности своегоотечественное решение, то же самое относится и к шифрованию
Используете ли вы IPrincipal и IIdentity, в этом случае: Как?
Если это полностью среда Windows, да, с использованием IPrincipalи идентичность имеет смысл.Партия «как» сложна - просто посмотрите образцы MSDN , вы можете расширить IPrincipal и IIdentity для реализации собственных authN и authZ в случае неоднородной (не Windows) сети.
Удачи!