Tag: iis 7

HttpModule.Init – 在IIS7集成模式下安全地添加HttpApplication.BeginRequest处理程序

我的问题类似但不完全相同: 为什么我的主机(softsyshosting.com)不支持BeginRequest和EndRequest事件处理程序? (我也读过其中引用的mvolo博客) 目标是成功地在IHttpModule.Init事件(或模块内部的任何地方)中挂钩HttpApplication.BeginRequest,使用通过system.webServer配置集成的普通HttpModule,即不会: 入侵Global.asax或 覆盖HttpApplication(该模块旨在自包含和可重用,所以例如我有这样的配置): 到目前为止,我试图将一个侦听器附加到HttpApplication.BeginRequest的任何策略都会产生以下两种情况之一:症状1是BeginRequest永远不会触发,或者症状2是所有托管请求都抛出以下exception,我不能从用户代码中捕获并处理它: Stack Trace: [NullReferenceException: Object reference not set to an instance of an object.] System.Web.PipelineModuleStepContainer.GetEventCount(RequestNotification notification, Boolean isPostEvent) +30 System.Web.PipelineStepManager.ResumeSteps(Exception error) +1112 System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +113 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +616 在app.BeginRequest += new EventHandler(this.OnBeginRequest)当然会停止exception。 Init根本不引用Context或Request对象。 我试过了: 在项目的任何位置删除了对HttpContext.Current的所有引用(仍然是症状1) 测试从我的OnBeginRequest方法的主体中删除所有代码,以确保问题不在方法的内部(=exception) 嗅探堆栈跟踪并仅调用app.BeginRequest + = …如果堆栈未由InitializeApplication启动(= BeginRequest未启动) 只在第二次通过Init时调用app.BeginRequest + =(= BeginRequest未激活) […]

制作Wcf服务IntegratedWindowsAuthentication

当我在IIS中设置Windows身份validation启用和匿名禁用时,我收到以下错误。 主机上配置的身份validation方案(’IntegratedWindowsAuthentication’)不允许在绑定’BasicHttpBinding’(’Anonymous’)上配置的身份validation方案。 请确保将SecurityMode设置为Transport或TransportCredentialOnly。 此外,可以通过IIS管理工具,通过ServiceHost.Authentication.AuthenticationSchemes属性,在元素的应用程序配置文件中更改此应用程序的身份validation方案,通过更新绑定上的ClientCredentialType属性,或通过调整HttpTransportBindingElement上的AuthenticationScheme属性。 我的Wcf服务的web.config如下…… 请指教..

如何使用c#在IIS 6和IIS 7中启用32位应用程序模式

我想使用C#更改Enable32BitAppOnWin64属性。 我知道与IIS 6和IIS 7交互的方式是不同的。 但我需要两个版本的解决方案。

形成身份validation安全风险

我使用的是VSTS 2008 + C#+。Net 3.5 + IIS 7.0 + ASP.Net。 在我对Forms身份validation的理解中,会话变量(用于身份validation标识符 – 即,当用户通过身份validation时,用户将拥有此类会话变量,并且会话变量被实现为cookie)将为经过身份validation的用户建立。 我对此模式的关注是,每次用户访问网站中的页面时,会话变量都将传输到服务器端。 它可能被黑客窃取,黑客可以使用这样的会话变量假装成最终用户? 这是安全隐患吗? 如果存在安全风险,那么我们必须始终使用https进行Forms身份validation吗? 乔治,提前谢谢

“无法打开RSA密钥容器”即使在ACL权限之后也会出错(对于某些用户)

应用加密时,我们收到以下错误(在asp.net网站上)。 分析器错误消息:无法使用提供程序“RsaProtectedConfigurationProvider”进行解密。 来自提供程序的错误消息: 无法打开RSA密钥容器。 注意:请参阅我们遵循的下列步骤。 (我们已经在NetFrameworkConfigurationKey上授予NT Authority \ Network Service的ACL权限) 注意:我们在IIS7中使用启用Windows身份validation和启用ASP.NET模拟。 它在Windows Server 2008中运行。 根据用户是否属于允许的AD组(将在配置文件中列出)来控制访问。 有趣的是,当group1的用户(来自location1)访问它时会发生此错误。 当group2的用户(来自locatiob2)尝试访问它时,错误不会发生。 有关如何纠正它的任何想法? 我们已从部署文档中按照下面列出的步骤进行操作。 在管理员模式下运行命令窗口。 (在Windows Server 2008中,键入cmd并按CTRL + SHIFT + ENTER) 使用更改目录命令(cd)转到文件夹C:\ Windows \ Microsoft.Net \ Framework \ v4.0.30319 \。 键入以下命令以创建RSA密钥容器。 aspnet_regiis -pc“NetFrameworkConfigurationKey”–exp 键入以下内容(添加用于访问RSA密钥容器的ACL),然后按enter aspnet_regiis -pa“NetFrameworkConfigurationKey”“NT Authority \ Network Service” 键入以下内容(在将突出显示的文本替换为部署服务的位置之后),然后按Enter键加密Service的Web.Config中的连接字符串。 aspnet_regiis.exe -pef“connectionStrings”“C:\ MyWCF \ ServiceName” 键入以下内容(在将突出显示的文本替换为部署网站的位置之后),然后按Enter键加密网站Web.Config中的连接字符串。 aspnet_regiis.exe -pef“connectionStrings”“C:\ […]

仅当文件不存在时才会触发HttpHandler

我正在尝试创建一个HTTP处理程序来处理对文件夹的所有请求,但我只想在请求的文件不存在时触发它(EG:请求来自文件X,如果X存在我想要服务该文件,否则处理程序应该处理它)。 这些文件只是静态内容,而不是脚本本身,我认为它使它更容易但我似乎无法找到任何可以做到这一点的任何东西……任何人都有任何想法? 我认为它可以完成,因为IIS7重写模块可以管理它,但我看不出如何… 编辑只是为了澄清…处理程序是典型的情况,它不是error handling例程,而是实际提供适当的内容。 我只是希望能够将新文件作为单独的东西添加到文件夹中,或者作为处理程序将提供的内容的重载。

IIS 7.x,添加启用HTTPS的站点:SiteCollection.Add(string,string,string,byte )重载

我需要以编程方式添加一个IIS 7.x站点,当我应该使用HTTPS / SSL绑定创建默认情况下,usig SiteCollection.Add(string,string,string,byte [])重载时,我会陷入困境。 将https:*:80:test.localhost https:*:443:test.localhost作为bindingInformation引发带有此消息的ArgumentException: 指定的HTTPS绑定无效。 这个绑定信息有什么问题? 谢谢。 编辑 : 我正在使用Microsoft.Web.Administration程序集。

如何以编程方式为IIS7创建子域?

我正在用IIS7托管的C#/ ASP.NET中编写一个SaaS应用程序。 我想为每个注册的客户创建一个个性化的子域名,即fred.mydomain.com,bob.mydomain.com,每个客户都指向同一个应用程序,每个客户只有不同的皮肤。 如何以编程方式创建这些子域?

IIS 7.0中的html页面未经授权的访问错误

我使用的是VSTS 2008 + C#+ .Net 3.5 + IIS 7.0。 我创建了一个新的网站,并将一个html文件放入该目录。 当我在IIS管理器中使用浏览function浏览html文件时,我遇到了以下错误,任何想法有什么问题? BTW:我对未经授权的错误感到非常困惑,因为我在管理员帐户下运行工作进程。 从错误消息,我很困惑,为什么登录方法是匿名的,而不是使用管理员帐户? HTTP Error 401.3 – Unauthorized You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server. Module IIS Web Core Notification AuthenticateRequest Handler StaticFile […]

使用ClientBuildManager.CompileFile进行就地编译

我正在开发一个我想使用就地编译的网站,以便让第一次点击更快。 我想使用ClientBuildManager 。 CompileFile方法进行就地编译,这样我就可以控制编译过程。 由于各种原因,这是编译本网站的理想方式。 为什么IIS在“临时ASP.NET文件”下构建到不同的子目录? 当我通过ClientBuildManager按文件编译网站文件时。 在为此目的构建的exe中的CompileFile方法,输出转到“临时ASP.NET文件”下的子目录。 但是,当以后点击网站时,IIS会在“临时ASP.NET文件”下的不同子目录下重建控件,使之前的就地编译变得毫无价值。 注意 :在“临时ASP.NET文件”下的就地编译期间创建的程序集将保持不变(仍然存在)。 注意 :就地编译程序集文件夹和IIS生成的程序集文件夹都位于相同的“Temporary ASP.NET Files”目录下。 例: C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 2ba591b9 \ [ 就地编译文件夹名称 ] C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 2ba591b9 \ [ IIS为网站生成程序集 […]