1

我不确定我想要什么,所以这是我在这里发帖的主要原因,我是 asp.net / mvc 的新手,只是 webdevelopement。但是,我得到了一个获得(自定义)安全性的 WCF 服务。(IAuthorizationPolicy、IPrincipal 和 UserNamePasswordValidator)。

但是,我找不到关于 ASP.net 安全性的好文章。我找到的所有指南都是关于 sql 成员资格提供程序的,具有自动生成的数据库,但是我不想创建新的用户表等,我想使用我的旧表(其中已经有数百个用户)。但我知道我需要添加一个新表来跟踪 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 和内存阅读器/作家哈哈?它不会将会话保存在数据库中吗?不确定或这是一个好方法,有什么建议吗?

4

2 回答 2

1

我还没有使用它,所以这不是个人认可,但我刚刚阅读了有关 SimpleMembership 的信息,这听起来正是您所需要的。请参阅Jon Galloway 关于该主题的出色博客文章

于 2012-09-16T02:18:42.057 回答
1

身份验证和授权在 .NET 中是完全独立的。

对于身份验证,如果没有一个标准满足您的需求,您可以考虑编写自定义 MembershipProvider 。

对于授权,您可以考虑编写自定义 RoleProvider,如果没有一个标准满足您的需求。

MembershipProvider 公开一个用于身份验证(例如ValidateUser)和管理用户(CreateUser、ChangePassword、ResetPassword,...)的API。

RoleProvider 公开一个用于授权(IsInRole、GetRolesForUser)和管理用户角色成员资格(CreateRole、AddUsersToRole,...)的 API。

如果您已经使用现有的 db 表进行了管理,则只需实现基本的身份验证和授权方法:其他人可以抛出NotSupportedException.

于 2012-09-16T07:07:42.890 回答