ASP.NET Intranet配置 - 获取网络用户ID但访问Db和文件夹作为不同的用户

时间:2014-12-31 21:44:15

标签: asp.net authentication intranet

我查看了大量文章并尝试了多种设置,但我似乎无法实现我在内部网站点中所寻找的内容。即使我没有得到解决方案,一个明确的“你不能这样做”将帮助我前进。这是我正在尝试做的事情:

  1. 网站识别用户的网络登录凭据 - 只有这样我才能在没有登录的情况下获取用户ID
  2. 网站使用一些通用帐户(IUSR或类似的东西)来访问同一网络用户无法通过网站访问的SQL Server
  3. 用户可以将文件上传到网站即时创建的一组文件夹中,以包含其文件供以后参考
  4. 该网站可以即时构建网页,其中包含指向用户文件的链接 - 只有他们的文件 - 因此他们可以通过网页打开/下载它们
  5. 用户无法通过网络服务器上的网络共享访问上传的文件
  6. 所有文件夹创建,文件上传和文件服务都发生在某些通用帐户下,例如IUSR
  7. 我目前已经配置了使用Windows身份验证的东西,我可能可以忍受,除了我不想要求登录该站点。显然,为了实现这一点,我需要将服务器配置为受信任的委托,并且IT正在拖延这样做。此外,此配置允许用户通过网站以外的方式访问SQL Server和文件夹/文件,我真的不想这样做。我只需要选择他们的用户ID,这样我就可以用它从Active Directory中获取有关他们的信息,并跟踪他们与网络应用的互动。

2 个答案:

答案 0 :(得分:1)

在审核你的帖子时,我必须首先说“是”,看起来你想要完成的事情就好了。然而,你的问题的严重性排除了简单的发布答案。从我收集到的内容中,您要浏览三个安全问题:1)Windows身份验证,2)仅限管理员访问SQL,3)仅限用户使用Active Directory进行身份验证时访问文件和目录。

我使用Active Directory(Windows登录)构建了几个月的ASP.net Intranet Web应用程序。我建议您浏览一下这篇文章:http://www.mikesdotnetting.com/article/216/windows-authentication-with-asp-net-web-pages,了解在ASP.net Web应用程序中设置Windows身份验证的详细信息。您可以使用名为“Login”的Visual Studio [Toolbox]部分向网页添加元素,其中包含“LoginName”等元素。

接下来我很确定您可以使用您选择的身份验证参数来控制SQL Server查询访问。在connectionString的部分中,通常是“Integrated Security = True;”您需要将其切换为“Integrated Security = False; username = sqlAdminUserName; password = sqlAdminPassword”。有关详情,建议您查看以下帖子:Integrated Security = False

对于第三个安全问题,一旦您隔离了用户的Windows登录标识,您就应该能够动态构建网页,文件,目录以及您需要为该单个用户定制的所有其他资源。我相信所有这些材料的生成都可以通过IUSR帐户完成,其中唯一需要的成分是Windows登录用户身份。

祝你好运,我希望我的建议有助于您前进。

答案 1 :(得分:1)

实际上,答案并不是那么复杂,而且为什么要在网上找到一个单一的来源拼写它是如此困难,这真是个谜。这是我对Intranet应用程序的IIS身份验证,它完全符合我的要求:

  • 启用ASP.NET模拟并编辑为经过身份验证的用户
  • 启用Windows身份验证
    • 高级设置 - >扩展保护 - >关闭
    • 高级设置 - >启用内核模式身份验证 - >未选中
    • 提供商 - >可用提供商 - >协商:Kerberos并将其移至顶部
  • 禁用所有其他身份验证
  • 最关键:让服务器成为受信任的代表'在Active Directory中

应该这样做。