假设我有一个 .NET 富客户端 (WPF) 应用程序,它将同时部署在 3 个不同的场景中:
- 客户端和服务器代码在单个进程中运行
- 客户端代码在 Intranet 计算机上运行,并通过 WCF 与运行应用程序/域/基础设施代码的服务器计算机进行通信
- 与 #2 相同,但客户端可以在防火墙之外的计算机上运行。应集中维护用户和角色的自定义列表(即,凭据不基于 Windows 登录)
为此应用程序实施相同的用户授权/身份验证模型的简单且经过验证的实践是什么?也就是说,我想在表示层、应用程序层、域层等中使用相同的方法,无论应用程序如何部署。
是否应该通过现有实体框架模型在 SQL 数据库中显式维护用户/角色?应该Thread.CurrentPrincipal
是需要授权某些应用程序功能的代码所使用的方法,或者应该是某些IUserService
被依赖注入?
这是一个低调的应用程序,因此安全性并不是至关重要的——只是一些基本的东西。
Thanks
Edit
在花费数小时研究 WIF/基于声明的身份验证后,我仍然没有看到任何有关如何创建采用此类安全性的独立 .NET 桌面应用程序的指导。所有讨论都针对 ASP.NET 或 WCF。我需要我的应用程序使用可用于分布式 (WCF) 和独立部署场景的标准方法
一般来说,最好选择基于令牌的身份验证,例如 JWT。主要原因是它在各种类型的客户端和服务器上的灵活性。例如,如果将来您需要向解决方案添加移动应用程序(IOS、Android 等),您可以毫无问题地完成。您还可以使用 WebApi 等 Restful 服务增强您的应用程序。
因此,如果您要启动该项目,我对您的建议是采用基于令牌的身份验证。
查看这些网址,您可能会发现它们很有用:
https://msdn.microsoft.com/en-us/library/ms751506%28v=vs.110%29.aspx https://msdn.microsoft.com/en-us/library/ms751506%28v=vs.110%29.aspx
http://www.rhyous.com/2015/02/05/basic-token-service-for-wcf-services-part-1/ http://www.rhyous.com/2015/02/05/basic-token-service-for-wcf-services-part-1/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)