2011-12-23 36 views
1

我正在为我的公司创建一个内部网站,其中每个访问此网站的人都是AD的一部分。如何针对带角色的AD进行授权

我想要做的是,当用户连接到网站时,它们会自动通过AD进行身份验证。根据他们是这个特定网络应用(许多AD组)的一部分,我向他们展示了该网站的不同视图。

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

我也想我会遇到一个问题,我希望这个身份验证能够贯穿整个网站 - 不仅仅是每个视图,而是实际限制用户可以访问的内容,并且只显示与他们相关的数据。

有没有人有任何建议,以正确的方式来做到这一点?我已经搜索了教程,但没有任何具体的跳到我身上。

回答

1

原来我是一个完整的,完全的娃娃。

这确实与Windows身份验证回到公元工作...

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

为什么不是为我工作?原来我拼错了我的团队名称。 :-(

2

虽然它表示它是已过时它与您的使用完全相关。检出How To: Use Membership in ASP.NET 2.0 with the Actve Directory Membership Provider

UPDATE

I did run across this, but, I want to avoid the user having to log in. I like the auto nature of the Windows authentication. Can this forms approach be modified to work with Windows authentication?

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

Windows身份验证会执行大量额外的配置。您将不得不允许可以登录访问IIS目录的用户。我很肯定你不能使用SQL连接池,所以如果你的网站使用SQL服务器,每个用户都必须登录SQL。

+0

我确实遇到过这种情况,但是我想避免用户登录。我喜欢Windows身份验证的自动性质。是否可以修改此窗体方法以使用Windows身份验证? – JasCav 2011-12-23 22:10:25

+0

已更新 – 2011-12-23 22:17:17

0

您可以通过使用Sharepoint来完成此操作的最佳方法之一。它已经具有与AD连接的结构。 http://sharepoint.microsoft.com/en-us/Pages/Try-It.aspx

+0

我不认为OP想要将Sharepoint引入ASP.NET MVC 3应用程序中进行身份验证...... – 2011-12-23 22:07:03

+0

我同意@marc_s。虽然Sharepoint在我的组织内部使用,但我想学习如何在Sharepoint上下文中做到这一点 – JasCav 2011-12-23 22:08:49

+0

这是我的错误,当我阅读它时,我意识到他只是在寻找关于如何与AD集成的建议,总是在这种类型的Sharepoint中有一个很好的结果的环境,所以我只是提出一个建议。 “我试图做的是,当用户连接到站点时,他们会自动通过AD进行身份验证。根据他们是这个特定Web应用程序(AD组的一部分)的一部分,我显示他们对网站的看法不同。“ ^该段听起来像是我在Sharepoint中会做的100%。容易! – Chris 2011-12-23 22:10:37