我似乎无法偶然发现的正确的组合IIS/ASP.NET 设置,以完成以下任务:

  1. 所有用户上 内部域 应该能够访问IIS网站(w/NTLM认证),ASP.NET 应用应该可以获得的用户名的当前用户(aka 对用户进行身份验证以自己的).
  2. 运行ASP.NET 应用程序应该能够 执行某些行动在管理员的帐户.例如,活动目录的更改,或者写的文件受到限制的地点。

你可能猜测,但有一点的应用程序是以能够让的"常规"使用特定的"行政"的变化,通过网络应用程序。在同一时间,改变应该记录的"正常"用户账户,所以我不想失去的身份验证用户的凭据。

寻找特定的的设置在IIS6完成#1的(任何用户在该领域获得的网站,并被认证为自己),随着代码#2.

有帮助吗?

解决方案

有至少两个选项:

共同对这两种:

  • IIS定应设置窗户身份验证。
  • 身份的用户可以从中读取httpcontext.

备选案文1:

  • 设置模拟=false
  • 设定的身份应用游泳池来的用户有权作广告的变化
  • 添加上述用户IIS_WPG组

备选2:

  • 当做广告的更改组身份的线的用户,被允许作广告的变化

对于备选案文2,这是一个码的例子,采用模拟用户:

http://msdn.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx

其他提示

从安全的角度来看,最好的办法是独立的所有行政行动纳入其自己的网服务,并进行身份验证,但没有模仿。你Normalpart的网站将履行行政管理通过调用网络服务,就像任何其他客户,即使是一个本地电话。

这种方式实现之间的隔离正常程序,游泳池(模拟)和荣幸池的应用程序(行政).

最后,这也许是分裂的头发,但应该Kerberos身份验证,不NTLM,因为NTLM不允许 受约束的代表团 和你的'正常'的应用程序将需要启用国代表团如果它访问 任何东西 外地IIS主机。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top