是否可以在 MVC for Asp.NET 中使用 Outlook 电子邮件组作为角色?

Posted

技术标签:

【中文标题】是否可以在 MVC for Asp.NET 中使用 Outlook 电子邮件组作为角色?【英文标题】:Is it possible to use Outlook Email Groups as Roles in MVC for Asp.NET? 【发布时间】:2012-04-23 16:41:30 【问题描述】:

我需要设置此 MVC 应用程序以使用 Windows 身份验证和 Outlook 电子邮件组为用户分配角色,然后我可以授权这些角色中的用户能够在控制器中执行特定操作。

我搜索了一下,发现了一些非常有用的信息,关于角色如何与 MVC 一起工作,以及我如何将角色提供者类用于许多基于角色的操作。但是,这些角色来自 SQL 数据库,不使用 Outlook 电子邮件组和 Windows 身份验证来授权用户。

我特别想了解如何利用 Outlook 电子邮件组,但我无法轻松找到此信息。谁能帮帮我?

 <authentication mode="Windows">
</authentication>
<authorization>
  <deny users="?" />
  <allow users="?" />
  <allow roles="HAH\Domain Users"/>
  <deny users="*" />
</authorization>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
  <providers>
    <clear />
    <add
        name="AspNetWindowsTokenRoleProvider"
        type="System.Web.Security.WindowsTokenRoleProvider"
        applicationName="/" />
  </providers>
</roleManager>

【问题讨论】:

您是指 Exchange 电子邮件组吗?如果是这样,答案是肯定的,因为它们是特殊的 Active Directory 组。 是的,这可能就是我的意思。你知道我可以看的任何参考资料吗?与此同时,我将开始用谷歌搜索这些关键字。 【参考方案1】:

如果您在 Active Directory 中的组为 Exchange Distribution Lists,则可以使用任何使用 Windows 身份验证的 MVC 示例。

甚至为此提供了一个 Visual Studio 模板。创建一个新的 MVC Web 应用程序,然后选择 Intranet Application。

更新

您的 web.config 存在一些问题。您应该只指定一个拒绝元素和一个允许元素:

<authorization>
  <deny users="?" />
  <allow roles="HAH\Domain Users"/>
</authorization>

这将拒绝所有未经授权的用户并允许域用户。请注意,MVC 遵循[Authorize] 属性中定义的角色。我相信该属性会覆盖 web.config 设置。

在您的控制器中,您可以为整个控制器类或特定操作方法指定角色。

[Authorize(Roles = "Group 1, Group 2, Group3")]
public class MyController  

public class MyController

  [Authorize(Roles = "Group 1, Group 2, Group3")]
  public ActionResult MyAction()
  
     return View();
  

【讨论】:

asp.net/mvc/tutorials/older-versions/security/… 不幸的是,我需要完成当前的项目,无法创建新项目。不过谢谢你的帮助。 对现有项目进行更改真的很容易。只需比较 web.config 文件并验证您的设置是否与 this article 匹配。 谢谢。如果 windows 身份验证已经启用并正在使用,是否还需要进行更改? 如果您已经在使用 Windows 身份验证,您可能只需要更改 [Authorize] 属性中的角色名称。

以上是关于是否可以在 MVC for Asp.NET 中使用 Outlook 电子邮件组作为角色?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 maproute 在 asp.net mvc 中路由多个参数

在 ASP.Net MVC 应用程序中从 Facebook SDK for .Net 获取 Facebook 用户访问令牌

是否可以在 ASP.NET MVC 的脚本块中引用 ViewData?

从右到左 GridView For Asp.net MVC

是否可以在 ASP.NET MVC 中本地化 URL/路由?

是否可以设置一个跨多个 ASP.NET MVC 项目使用的基础项目?