【问题标题】:Where i should manage my asp.net mvc windows authntication Roles我应该在哪里管理我的 asp.net mvc windows 身份验证角色
【发布时间】:2014-08-09 20:42:09
【问题描述】:

如果我在 asp.net mvc web 项目中使用 windows 身份验证,我将不会获得任何成员数据库,这与基于表单的身份验证不同。但我仍然可以使用角色。所以我有以下问题:-

  1. 那么这些角色在哪里管理,在使用 Windows 身份验证时我将如何为用户分配角色?

  2. 这些角色是否仅在 Active Directory 中管理和创建?如果我想将用户添加到特定角色,我将在活动目录中执行此操作?

有人可以建议吗?

编辑 现在,如果我很好地理解了您的观点,假设我想将调用操作方法限制为仅限于我们公司的管理员。当前在活动目录中,我们有一组名为“OurCompanyAdminsitrators”的用户

假设我创建了一个新的 asp.net mvc5 web 项目,并指定使用 Windows 身份验证,然后在我的操作方法中我写了以下内容:-

[Authorize(Roles = "OurCompanyAdminsitrators")]

asp.net mvc5 会识别 OurCompnayAdministrators 用户组吗?或者我需要为我的 asp.net mvc web 项目做额外的工作才能读取和检查活动目录组?

【问题讨论】:

    标签: asp.net asp.net-mvc-4 asp.net-mvc-5 forms-authentication windows-authentication


    【解决方案1】:

    我认为有很多方法可以解决这个问题,2 我能想到的:

    1. 使用 Active Directory 管理您的角色并根据需要将用户添加到 Active Directory 组。然后,您可以通过用户身份访问它们,您可以在其中从 http 上下文中获取。

    2. 创建一个单独的服务/组件来为您管理安全性,您可以在其中将用户凭据映射到您自己定义的完全远离 AD 的角色。显然,这里有更多的时间投入,您需要复制一些信息。

    【讨论】:

    • 你能检查我的编辑吗,因为我不太明白你的意思。
    • 几乎是的,名字需要是 [Domain\RoleName] 我想你可能会发现这个link很有用
    【解决方案2】:

    【讨论】:

    • 正如您的 3 个链接所提到的,SimpleMembership 用于 Internet 应用程序,而我的问题是关于 Windows 身份验证,其中用户存在于活动目录中......但我不确定角色将在哪里管理,何时使用 Windows 身份验证
    • sqlRoleProvider 意味着我要将用户存储在数据库中,而使用 Windows 身份验证允许我自动从 AD 调用用户...
    • 如果我们使用 SqlRoleProvider,它将创建具有预定义表/sps 的数据库,如 aspnet_users、aspnet_roles 来进行授权。检查这个msdn.microsoft.com/en-US/library/ms229862%28v=vs.80%29.aspx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2016-03-07
    相关资源
    最近更新 更多