我想向我的应用程序添加身份验证和授权。我不想为此使用 Active Directory。我应该System.IdentityModel.Claims
用来做这个吗?使用System.IdentityModel.Claims
会更容易实现身份验证和授权吗?为什么/为什么不呢?
2 回答
You might consider looking at the Microsoft Geneva framework for Claims-Based Authentication and authorization. http://www.microsoft.com/geneva
Implementing Claims based security will definitely make things easier on you.
Claims-based security has the following advantages over role-based and access control lists (ACLs):
- Single programming model, no matter the authentication scheme used
- Claims flow across services in a SOA environment easier and in a more standards-compliant way
- More flexible (you may see that a role is really just another type of claim)
- No need to reauthenticate when crossing process boundaries
Hope this helps.
那么你想用什么?数据库?您认为基于声明的身份验证会给您带来什么?
如果您想通过多个系统(例如中间层)将身份传递到兼容的后端,而不必弄乱模拟和委托,那么基于声明的身份验证会让生活变得更轻松。它也部分用于联合 - 允许其他人的系统执行身份验证和然后,您可以根据这些系统发送的身份信息授权对您的应用程序的访问。
但是,如果您只想避免使用 AD 而是使用来自数据库的用户名和密码,那么成员资格提供程序是一个更简单的选择,它可以为 WCF 和 ASP.NET 启用基于角色和用户的授权检查。