首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web和类库项目之间的共享身份验证

Web和类库项目之间的共享身份验证
EN

Stack Overflow用户
提问于 2014-03-08 06:26:25
回答 1查看 1.4K关注 0票数 1

我有一个解决方案,分为3个项目。

其中两个是使用ASP.Net身份提供者的MVC 5 web应用程序。

一个是类库,它由其他项目引用。所有的残渣行动都发生在这里。

所有项目指向相同的DB并通过EF操作。

所有业务逻辑都发生在类库中,但与用户无关。用户验证只在web应用程序中进行。这里的问题是用户验证代码在所有web项目中重复,类库不知道用户调用API。

这种架构很快就会带来维护噩梦,所以我只想让类库与db进行业务逻辑或用户验证。

现在,由于ASP.Net身份提供程序在类库中不工作,有人找到了绕过它的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 13:01:31

我不知道你所指的“维护噩梦”指的是web应用程序中的安全性。将应用程序域与安全模型分离是一件好事。您的域模型和业务逻辑在某些web应用程序中可能保持不变,但安全性模型可能有所不同。我不会把这些绑在一起的。如果它在类库中,那么如何让OWIN安全框架为您处理表单身份验证。您是否也将在类库中管理所有这些。

当您提到“用户验证”时,我假设您是在谈论授权。如果必须在类库中执行授权,我将实现一个自定义ClaimsAuthorizationManager。您将重写CheckAccess方法以执行授权。ClaimsAuthorizationManager是在您的web.config中配置的,因此您可以为不同的web应用程序配置不同的ClaimsAuthorizationManager。但是类库中的逻辑将保持不变。在执行要插入的操作之前,您希望授权用户的任何地方:

代码语言:javascript
复制
ClaimsPrincipalPermission.CheckAccess("MyResource", "MyAction");

传递的资源和操作将在您创建的自定义ClaimsAuthorizationManager中使用,以了解正在进行授权的上下文。我谈到了在本文中,将您的安全模型与应用程序域分离开来。的这种方法。如果授权失败,将引发SecurityException。在适当处理web应用程序(在控制器中重定向或Web APi的HTTP未经授权的错误中)时,您会让这种情况扩散到Web应用程序。请注意,如果您也在非web应用程序中使用类库,则此体系结构将工作。我已经在ASP.NET标识中使用了这个,并且它运行得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22265951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档