2013-10-22 52 views
1

我有一个HTTPModule代码,它在向IIS发出请求后立即为我提供当前登录的用户以及其他一些信息。我们正在根据这些信息执行一些任务。如何检查对IIS的http请求是否对应于SharePoint站点请求

但是每次发出任何请求时都会触发它(它应该)。这里的问题是,我在这个IIS上还托管了其他网站,这些网站需要从上述处理中过滤掉。这种过滤不会发生,因为上述代码会被所有网站触发,我只想限制在与SharePoint相关的网站上。

如何知道http请求是针对SharePoint站点还是任何常规站点?

任何帮助或指针在这方面将是非常可观的。

回答

1

看起来像你在IIS级别实现了一个模块。

您应该在应用程序级别上执行此操作,即为您的SharePoint站点提供服务。

您可以通过使用将修改Sharepoint应用程序的web.config的web应用程序功能实现解决方案来实现此目的。您可以通过使用SPWebConfigModification API做到这一点:

http://msdn.microsoft.com/en-us/library/bb861909(v=office.14).aspx

在IIS的水平,你需要分析该请求并做基于URL或其他参数的一些过滤,这将是从长远来看,因为它有问题将需要不断调整。

+0

我不能在应用程序级别执行此操作。每当在新的WebApp中创建新网站时,新网站将托管在IIS上。管理员可以在SharePoint中创建n个Web应用程序和/或站点。改变之前创建的每个web.config并将进一步创建这将是一个巨大的痛苦。所以我需要在IIS级别实现它。 也如您所说,我只需要筛选条件,我可以根据该条件决定请求是否适用于SharePoint站点。 – Rosane

+0

如果您将其作为Sharepoint应用程序功能实现,那将会很痛苦。你甚至可以设置一个默认启用的标志,它会在新的Web应用程序中自动启用它。请记住,上面的方法可以处理所有的变化。您不必担心手动编辑web.config文件 – Luis