Asp.net mvc 3 如何使用角色对AD进行授权

Asp.net mvc 3 如何使用角色对AD进行授权,asp.net-mvc-3,windows-authentication,Asp.net Mvc 3,Windows Authentication,我正在为我的公司创建一个内部网站,所有访问该网站的人都是广告的一部分 我想做的是,当用户连接到网站时,他们会自动根据广告进行身份验证。根据他们是这个特定web应用程序的一部分的组(许多广告组),我会向他们显示网站的不同视图 目前,我开始做一些简单的事情(但我不认为这是正确的),因为我在_Layout.cshtml中有广告逻辑,然后根据我在那里得到的结果,显示页面其余部分的不同视图(各种局部视图)。这是可行的,但感觉不对 我还认为我会有一个问题,我希望这种身份验证能够在整个网站上进行——不仅仅是每

我正在为我的公司创建一个内部网站,所有访问该网站的人都是广告的一部分

我想做的是,当用户连接到网站时,他们会自动根据广告进行身份验证。根据他们是这个特定web应用程序的一部分的组(许多广告组),我会向他们显示网站的不同视图

目前,我开始做一些简单的事情(但我不认为这是正确的),因为我在_Layout.cshtml中有广告逻辑,然后根据我在那里得到的结果,显示页面其余部分的不同视图(各种局部视图)。这是可行的,但感觉不对

我还认为我会有一个问题,我希望这种身份验证能够在整个网站上进行——不仅仅是每个视图,而是实际限制用户可以访问的内容,并且只显示与他们相关的数据

有人对正确的方法有什么建议吗?我已经搜索了教程,但没有什么特别的东西跳到我身上。

虽然它声明它已经过时,但它完全适合你的使用。退房

更新


我确实遇到过这个问题,但是,我想避免用户必须登录。我喜欢Windows身份验证的自动特性。是否可以修改此表单方法以使用Windows身份验证?

不完全是。如果您不希望用户键入用户名和密码,则您必须使用,而且他们必须使用Internet Explorer(至少在我上次使用Windows身份验证时)


Windows身份验证执行大量附加配置。您必须允许可以登录的用户访问IIS目录。我很确定您不能使用SQL连接池,因此,如果您的网站使用SQL server,则每个用户都必须登录SQL。

实现这一点的最佳方法之一是使用Sharepoint。它已经有了连接广告的结构。

结果证明我是一个彻头彻尾的傻瓜

这确实适用于Windows身份验证返回AD

[Authorize(Roles = @"DOMAIN\an.ad.group")]
public ActionResult About()
{
    return View();
}

为什么它对我不起作用?原来我把我的组名拼错了-(

我不认为OP想将Sharepoint引入他的ASP.NET MVC 3应用程序只是为了进行身份验证……我同意@marc_s。虽然Sharepoint在我的组织内使用,但我想学习如何在Sharepoint环境之外进行此操作。这是我的错,当我阅读它时,我感觉到他只是在寻求如何操作的建议与广告整合。在这种环境中使用Sharepoint总是有很好的效果,所以我只是提出一个建议。“我试图做的是,当用户连接到网站时,他们会根据广告自动进行身份验证。这取决于他们是此特定web应用程序的一部分(许多广告组),我向他们展示了网站的不同视图。“^这段话听起来100%像我在Sharepoint中所做的。很简单!我确实遇到过这种情况,但我想避免用户必须登录。我喜欢Windows身份验证的自动性质。是否可以修改此表单方法以使用Windows身份验证?