我不确定它叫什么我想要的,所以这是我在这里发布的主要原因,我是asp.net / mvc的新手,只是webdevelopement。但是我得到了一个获得(自定义)安全性的WCF服务。 (IAuthorizationPolicy,IPrincipal和UserNamePasswordValidator)。
但是我没有找到关于ASP.net安全性的好文章。我找到的所有指南都是关于sql成员资格提供者,有自动genareted数据库,但是我不想创建一个新的用户表等,我想使用我的旧用户(已经有很多用户)。但我知道我需要添加一个新表来跟踪cookie(所以我可以将GUID与cookie GUID进行比较,或者我不知道我只是在这里和那里阅读)。但是,任何人都可以请我为自定义表单身份验证提供一个很好的教程,ps我还必须能够访问角色,(我已经为它提供了一个(角色)表)。是否可以使用具有以下属性的授权:
[PrincipalPermission(SecurityAction.Demand, Role = "Admin")]
public ActionResult GetUserStats(int userid)
{
PS:我知道我会被枪杀,因为这个问题太开放了,我做了研究,没找到任何最新版本(ASP.NET mvc 4,预装了所有的openauth和webmatrix安全的那个)文章如何做到这一切。
编辑:http://dotnetspeak.com/index.php/2011/07/asp-net-mvc-custom-authentication/似乎是迄今为止我发现的最好的文章,但它使用了json和内存读写器lol?并且它不会在数据库中保存会话?不确定或者这是一个好方法,有什么建议吗?
答案 0 :(得分:1)
我还没有使用它,所以这不是个人认可,但我刚刚读到了SimpleMembership,它听起来就像你需要的那样。有关该主题,请参阅Jon Galloway's excellent blog post。
答案 1 :(得分:1)
身份验证和授权在.NET中是完全独立的。
对于身份验证,您可以考虑编写a custom MembershipProvider,如果没有一个标准符合您的需求。
如果没有标准的符合您的需求,您可以考虑编写a custom RoleProvider。
MembershipProvider公开用于身份验证的API(例如ValidateUser)和用于管理用户(CreateUser,ChangePassword,ResetPassword,...)。
RoleProvider公开用于授权的API(IsInRole,GetRolesForUser)以及用于管理用户的角色成员资格(CreateRole,AddUsersToRole,...)。
如果您已经使用现有的数据库表进行了管理,则只需要实现基本的身份验证和授权方法:其他人可以抛出NotSupportedException
。