这可能会成为一个doozie。
我正在开发一个ASP.NET应用程序,以便放在我们公司的Intranet站点上。我已经获得了关于安全性的规范,并且不知道该怎么做。
第一部分:应用程序是使用Windows身份验证。这部分似乎很容易;我在管理工具中打开了IIS,右键单击了我的网站节点,属性并选中了“集成Windows身份验证”。但是,我不知道我将如何管理哪些人可以访问我的网站。我认为应该在数据库级别处理这个问题。这是Q#1
第二部分 - 我必须为以下场景实现一个过程:用户'Jane'可以登录我们的网络,但没有我的应用程序的权限。用户'Bob'确实有权使用我的应用程序。 Bob需要能够坐在Jane的计算机上(在她的网络帐户下),但能够将他的凭据输入我的应用程序并使用它(即使Jane已登录到本地计算机和网络)。这是Q#2
任何帮助,总体方向或建议都将不胜感激。获胜的彩票号码将会更受欢迎。
谢谢,
杰森
答案 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安全性