这可能会变成一个doozie。
我正在ASP.NET中开发一个应用程序,放在我们公司的内部网站上。 我已经提交了关于安全性的规范,不知道如何去做。
第一部分:应用程序使用Windows身份validation。 这部分看起来很简单, 我在pipe理工具中打开IIS,右键单击我的网站的属性,属性并选中“集成Windows身份validation”。 但是,我不知道如何pipe理哪些人可以访问我的网站。 我认为这应该在数据库级别照顾。 这是Q#1
第二部分 – 我必须实现以下场景的过程:用户“简”可以login到我们的networking,但没有权利我的应用程序。 用户'鲍勃'有权使用我的应用程序。 Bob需要能够坐在Jane的电脑(在她的networking帐户下),但是能够将他的凭证input到我的应用程序中并使用它(尽pipeJane已经login到本地机器和networking)。 这是Q#2
任何帮助,大方向或build议,将不胜感激。 中奖彩票号码将更加赞赏。
谢谢,
贾森
您正在寻找ASP.NET中的Windows身份验证和授权
第二部分…你是对的,那很难。 您将需要推出自己的自定义安全提供程序。 您将拥有一个登录页面,然后自己检查Active Directory。 来自MSDN
ASP.NET还支持使用绕过IIS身份验证的Windows身份验证的自定义解决方案。 例如,您可以编写一个自定义的ISAPI筛选器,以根据Active Directory检查用户的凭据。 用这种方法你必须手动创建一个WindowsPrincipal对象。
你在这里有认证和授权的要求。
认证 :确认身份的行为
授权 :将身份与特权相关联的行为(例如,读取/写入/删除)
如果您想要“自动注册”功能,Windows身份验证非常有用。 该网站将通过ID“认识”用户而不必登录。
用户需要从多个位置登录意味着您必须实现一个登录页面。 这将满足您的要求,其中一个用户可以坐在另一个工作站上登录。
您将需要根据Windows域对用户进行身份验证。 这可以使用自定义成员资格提供程序完成。 这是一个演练:
http://msdn.microsoft.com/en-us/library/ms180890(v=vs.80).aspx
这将允许您提供一个登录页面,用他们的域名和密码验证用户身份。 这将验证用户身份的用户将存储在HttpContext.User
。 您也可以在数据库中维护一个用户列表来存储授权数据。
也发现这个 – 对于那些在同一条船上的人来说,这是一个相当不错的资源:
在ASP.NET中混合形式和Windows安全性