需要帮助了解 ASP .Net MVC 用户身份验证/授权

Posted

技术标签:

【中文标题】需要帮助了解 ASP .Net MVC 用户身份验证/授权【英文标题】:Need help understanding ASP .Net MVC user authentication/authorization 【发布时间】:2013-01-24 08:21:49 【问题描述】:

我一直在兜圈子试图正确理解这一点。

我有一个正在处理的 ASP .Net MVC 项目,需要实现对外部系统进行授权和身份验证的用户登录(通过 Web 服务)。

在我需要的上下文中,我似乎无法理解MembershipProviderAuthorizeAttribute

我需要使用哪个(我相信两者兼而有之)以及我需要在哪里自定义以提供针对外部系统的身份验证。

除了默认的 ASP .Net 用户主体之外,我还需要另外一件事,即外部 Web 服务将在成功登录后返回一个会话 ID,该会话 ID 将用于对外部服务的后续请求。

有人能指出这种设置的一些有用示例的方向吗?

【问题讨论】:

【参考方案1】:

MembershipProvider 用于提供可以登录系统的用户。 RoleProvider 用于告诉用户具有哪些角色。它们在身份验证过程中使用。即识别用户。你可以read about membership vs roles

另一方面,[Authorize] 属性在授权期间使用。即检查是否允许用户做某事。

【讨论】:

所以我需要同时实现这两个。 MembershipProvider 需要覆盖ValidateUser()AuthorizeAttribute 需要覆盖AuthorizeCore()?我在哪里添加额外的 SessionId? 除了使用 Authorize 之外,您无需对它进行任何操作。它使用您向会员提供者提供的用户 谢谢,这真的很有帮助。对于其他实施类似事情的人,我还建议查看***.com/questions/1064271/…

以上是关于需要帮助了解 ASP .Net MVC 用户身份验证/授权的主要内容,如果未能解决你的问题,请参考以下文章

将特定域的 ASP.NET 模拟用户添加到 windows 身份验证

Asp.Net MVC 2中会话超时时的确认

ASP.NET MVC5 自定义身份验证

如何在asp.net mvc 5身份中的授权属性中使用动态角色

ASP.NET MVC 表单身份验证 + 授权属性 + 简单角色

ASP.NET MVC 5 中的基本身份验证