我似乎无法偶然发现IIS / ASP.NET设置的正确组合来完成以下任务:
您可能会猜到,但应用程序的重点是能够让“普通”用户通过Web应用程序进行特定的“管理”更改。同时,应使用“普通”用户的帐户记录更改,因此我不想丢失经过身份验证的用户的凭据。
在IIS6中查找特定设置以完成#1(域中的任何用户访问该站点并进行身份验证)以及#2的代码。
答案 0 :(得分:1)
至少有两个选择:
两者都很常见:
选项1:
选项2:
对于选项2,这是一个使用模拟用户的代码示例:
http://msdn.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx
答案 1 :(得分:0)
从安全的角度来看,最好的方法是将所有管理操作分成自己的Web服务,该服务进行身份验证,但不会模拟。您的网站的Normalpart将通过调用Web服务来执行管理操作,就像任何其他客户端一样,即使是本地主机调用。
通过这种方式,您可以在普通应用程序池(模仿者)和特权应用程序池(管理员)之间实现隔离。
最后,这可能是分裂,但它应该是Kerberos身份验证,而不是NTLM,因为NTLM不允许constrained delegation并且如果访问本地IIS主机外的任何。