0

Учитывая архитектуру 3-слойный:Custom IIdentity - где он относится к многоуровневому приложению?

  • Logic Domain Layer
  • Data Access Layer
  • Пользовательский интерфейс Layer (веб-приложение ASP.NET MVC)

Что такое правильное местоположение поместив логику, связанную с построением пользовательского идентификатора пользователя, добавлением пользовательских претензий и подписанием его в веб-приложение?

Например, логика, как это:

if (something) 
    customClaim = new Claim("MyClaimType1", "SomeClaimValue"); 
else 
    customClaim = new Claim("MyClaimType2", "AnotherClaimValue"); 

customClaimsIdentity.AddClaim(customClaim); 
HttpContext.Current.GetOwinContext().Authentication.SignIn(customClaimsIdentity); 

Я хочу сказать, что слой UI, но не эта логика (т.е. пользовательского пользователя) что-то из области вещи? Немного запутано здесь ...

ответ

1

Что вы описываете, это проблема безопасности, связанная с ASP.NET MVC и обычно реализуемая как фильтр действий. Исходя из этого, тогда код, который вы отображали, который также напрямую использует HttpContext, должен находиться на уровне пользовательского интерфейса (веб-приложение ASP.NET MVC).