C# 使用IIS+SQL Server进行Active Directory身份验证
我在尝试在windows安全性下创建web应用程序时遇到一些问题 情景 一台带有IIS的服务器和另一台远程SQL server。来自网络的所有用户都应该能够使用其active directory凭据使用应用程序 在此之后: 连接字符串: 应用程序选项:C# 使用IIS+SQL Server进行Active Directory身份验证,c#,asp.net,iis,login,C#,Asp.net,Iis,Login,我在尝试在windows安全性下创建web应用程序时遇到一些问题 情景 一台带有IIS的服务器和另一台远程SQL server。来自网络的所有用户都应该能够使用其active directory凭据使用应用程序 在此之后: 连接字符串: 应用程序选项: Authentication: ASP.NET Impersonation: Enabled Basic Authentication: Enabled Windows Authentication: Disabled &
Authentication:
ASP.NET Impersonation: Enabled
Basic Authentication: Enabled
Windows Authentication: Disabled <--According to documentation this has to be disabled when IIS and SQL are in different servers.
我按照文档的建议创建了测试页面,结果如下:
测试数据库
当前用户:域\testuser |系统用户:AD\testuser
当前用户IIS
User:Domain\testuser-将通过网络流动:False
交互ID:False
BatchSid:错误
ServiceSid:False
用户是已知的,但这三个广为人知的数据类型是错误的,因此将通过网络传输也是错误的
已检查:
有什么建议吗?一本有趣的书,一步一步地记录了您是如何从部署中完全消除所有安全性的。从阅读开始,只有在你真正理解了你在做什么之后才能做出改变。停止阅读随机论坛帖子。嗯,应用程序设置为仅使用Windows身份验证和模拟。我恢复了所有更改,并按照文档中的说明保留了这些更改,并且只授予经过身份验证的用户在SQL中登录的权限。这个解决方案有什么问题?为什么它会从应用程序中删除所有安全性?我尝试了一些失败的登录,他们得到了未经授权的预期响应。你不清楚你想要实现什么目标。对吗?这不是一个好问题。请解释您试图实施的身份验证方案。如果您不知道,这是您需要解决的第一个问题。您的解决方案(在我发表评论时,在所有编辑之后最初发布)正在删除所有安全性,因为您最终授予了对所有已验证用户组的R/W访问权。事实上,您已经授予了每个人访问您网络的权限。@RemusRusanu您是对的。我将用我正在尝试做的模式更新我的问题。
<identity impersonate="true"/>
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
Identity --> ApplicationPoolIdentity
Load UserProfile --> True
Authentication:
ASP.NET Impersonation: Enabled
Basic Authentication: Enabled
Windows Authentication: Disabled <--According to documentation this has to be disabled when IIS and SQL are in different servers.