Custom IIdentity - 它在多层应用程序中的位置?

时间:2016-07-15 15:35:33

标签: c# asp.net-mvc claims-based-identity separation-of-concerns multi-layer

给出3层架构:

  • 域逻辑层
  • 数据访问层
  • 用户界面层(ASP.NET MVC Web应用程序)

放置与构建自定义用户身份相关的逻辑,添加自定义声明以及将其签名到Web应用程序中的正确位置是什么?

例如,像这样的逻辑:

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

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

我想说的是UI图层,但是自定义逻辑(即自定义用户)不是的东西吗?这里有点困惑......

1 个答案:

答案 0 :(得分:1)

您所描述的是通常与ASP.NET MVC相关的安全性交叉问题,通常作为操作过滤器实现。基于此,您显示的代码(也可以直接使用HttpContext)应该位于用户界面层(ASP.NET MVC Web应用程序)中。