启用Windows身份验证的IIS站点使用2种不同的绑定执行不同的操作

时间:2014-09-24 17:27:12

标签: c# asp.net iis

我在IIS 7中设置了一个站点,它使用Windows身份验证作为唯一启用的身份验证模式。它使用自定义.NET 4应用程序池 - 池使用默认的ApplicationPoolIdentity。此站点是一个C#/ ASP.NET应用程序,具有自己的页面授权规则(使用Iron Speed Designer 9生成)。我在下面设置了两个绑定:

servicedirectory.sampledomain.com

booking.sampledomain.com

这两个绑定都映射到端口80上所有可用IP上的站点。

在大多数情况下,浏览任一绑定都能成功运行,除了某个页面,我创建了一个WebRequest,它将另一个页面作为Stream提取。 (我正在获取其他页面的内容并将它们作为附件嵌入到iCal(.ics)文件中以包含在会议请求中。该文件由用户下载并发送出去)

String request = Request.Url.GetLeftPart(UriPartial.Path).
    Replace("Conference.aspx", "Confirmation.aspx") +
    "?Conference=" + conference.ConferenceId;
WebRequest webRequest = WebRequest.Create(request);
webRequest.UseDefaultCredentials = true;

webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
Stream newStream = webRequest.GetRequestStream();
// Send the data.
newStream.Close();
WebResponse webResponse = webRequest.GetResponse();

Stream responseStream = webResponse.GetResponseStream();
using (MemoryStream ms = new MemoryStream())
{
    responseStream.CopyTo(ms);
    attachmentContent = Convert.ToBase64String(ms.ToArray());
}

responseStream.Close();

问题如下:当用户在第一个绑定(servicedirectory.sampledomain.com)下浏览时,此代码成功并从Confirmation.aspx页面生成内容作为String数据(attachmentContent变量)。但是,当通过其他绑定URL浏览时,WebResponse webResponse = webRequest.GetResponse();行出现401.1错误。应用程序源代码或web.config中有 no 引用要么绑定 - 所有内容都是为了部署到任何URL而构建的。

为什么两个不同的绑定会影响这个?

0 个答案:

没有答案