ASP.NET / IIS安全性(Windows身份验证)

时间:2011-06-28 20:34:39

标签: asp.net windows security authentication iis

这可能会成为一个doozie。

我正在开发一个ASP.NET应用程序,以便放在我们公司的Intranet站点上。我已经获得了关于安全性的规范,并且不知道该怎么做。

第一部分:应用程序是使用Windows身份验证。这部分似乎很容易;我在管理工具中打开了IIS,右键单击了我的网站节点,属性并选中了“集成Windows身份验证”。但是,我不知道我将如何管理哪些人可以访问我的网站。我认为应该在数据库级别处理这个问题。这是Q#1

第二部分 - 我必须为以下场景实现一个过程:用户'Jane'可以登录我们的网络,但没有我的应用程序的权限。用户'Bob'确实有权使用我的应用程序。 Bob需要能够坐在Jane的计算机上(在她的网络帐户下),但能够将他的凭据输入我的应用程序并使用它(即使Jane已登录到本地计算机和网络)。这是Q#2

任何帮助,总体方向或建议都将不胜感激。获胜的彩票号码将会更受欢迎。

谢谢,

杰森

3 个答案:

答案 0 :(得分:4)

您正在寻找ASP.NET中的Windows身份验证和授权

第2部分......你是对的,这很难。您需要推出自己的自定义安全提供程序。 您将拥有一个登录页面,然后自行检查Active Directory。来自MSDN

  

ASP.NET还支持自定义解决方案   使用Windows身份验证,   绕过IIS身份验证。对于   例如,您可以编写自定义ISAPI   用于检查用户的过滤器   针对Active Directory的凭据。   使用这种方法,您必须手动   创建一个WindowsPrincipal对象。

答案 1 :(得分:2)

您在此处有 身份验证 授权 的要求。

身份验证:确认身份的行为
授权:将身份与特权相关联的行为(例如,读/写/删除)

如果您需要“自动登录”功能,Windows身份验证非常有用。该网站将通过ID“了解”用户,而无需登录。

用户需要从多个位置登录,这意味着您必须实现登录页面。这将满足您的要求,即一个用户可以坐在另一个用户的工作站上并登录。

您需要针对Windows域对用户进行身份验证。这可以通过自定义成员资格提供程序完成。这是一个演练:

http://msdn.microsoft.com/en-us/library/ms180890(v=vs.80).aspx

这将允许您提供一个登录页面,该页面将使用其域用户名和密码对用户进行身份验证。这将 验证 用户 - 用户的身份将存储在HttpContext.User中。然后,您还可以在数据库中维护用户列表,以存储 授权 数据。

答案 2 :(得分:0)

还发现了这个 - 对于那些在同一条船上的人来说,这是一个非常好的资源:

在ASP.NET中混合表单和Windows安全性

http://msdn.microsoft.com/en-us/library/ms972958.aspx