无法使用 Visual Studio 2013 调试 IIS 8.5 中托管的 sitefinity 站点的 httpModule
Unable to debug httpModule of a sitefinity site hosted in IIS 8.5 using Visual Studio 2013
我正在尝试使用 Visual Studio 2013 调试托管在 IIS 8.5 中的 sitefinity 站点的 httpModule。我正在使用 Sitefinity 8.1 进行站点开发。
到目前为止我所做的事情:
- 在 sitefinity 站点的根文件夹下创建了一个 httpModule。代码如下:
public class UserRoleHttpModule : IHttpModule
{
public void Init(HttpApplication application)
{
application.PostAuthenticateRequest +=
(new EventHandler(this.PostAuthenticateRequest));
}
private void PostAuthenticateRequest(Object source,
EventArgs e)
{
UserManager userManager = UserManager.GetManager();
RoleManager roleManager = RoleManager.GetManager(SecurityManager.ApplicationRolesProviderName);
roleManager.Provider.SuppressSecurityChecks = true;
string[] rolesToAdd = new string[] {"BackendUsers"};
if (userManager.UserExists("rahuln"))
{
User user = userManager.GetUser("rahuln");
foreach (var roleName in rolesToAdd)
{
if (roleManager.RoleExists(roleName))
{
Role role = roleManager.GetRole(roleName);
roleManager.AddUserToRole(user, role);
}
}
}
roleManager.SaveChanges();
roleManager.Provider.SuppressSecurityChecks = false;
}
public void Dispose()
{
}
}
- 在webconfig下注册模块
<modules runAllManagedModulesForAllRequests="true">
<remove name="UserRoleHttpModule" />
<add name="UserRoleHttpModule" type="SitefinityWebApp.UserRoleHttpModule"/>
</modules>
现在,当我 运行 来自 IIS 的页面并在 visual studio 中使用 w3wp.exe 执行 "attach to process" 时。我在 httpModule 中的断点从来没有遇到过问题。我尝试构建解决方案并且构建成功。
任何帮助将不胜感激。
谢谢
您确定 HttpModule 正在执行,以验证将以下内容添加到 PostAuthenticateRequest,如果是,它应该重定向到 microsoft.com。
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Redirect("http://www.microsoft.com");
我正在尝试使用 Visual Studio 2013 调试托管在 IIS 8.5 中的 sitefinity 站点的 httpModule。我正在使用 Sitefinity 8.1 进行站点开发。
到目前为止我所做的事情:
- 在 sitefinity 站点的根文件夹下创建了一个 httpModule。代码如下:
public class UserRoleHttpModule : IHttpModule { public void Init(HttpApplication application) { application.PostAuthenticateRequest += (new EventHandler(this.PostAuthenticateRequest)); } private void PostAuthenticateRequest(Object source, EventArgs e) { UserManager userManager = UserManager.GetManager(); RoleManager roleManager = RoleManager.GetManager(SecurityManager.ApplicationRolesProviderName); roleManager.Provider.SuppressSecurityChecks = true; string[] rolesToAdd = new string[] {"BackendUsers"}; if (userManager.UserExists("rahuln")) { User user = userManager.GetUser("rahuln"); foreach (var roleName in rolesToAdd) { if (roleManager.RoleExists(roleName)) { Role role = roleManager.GetRole(roleName); roleManager.AddUserToRole(user, role); } } } roleManager.SaveChanges(); roleManager.Provider.SuppressSecurityChecks = false; } public void Dispose() { } }
- 在webconfig下注册模块
<modules runAllManagedModulesForAllRequests="true"> <remove name="UserRoleHttpModule" /> <add name="UserRoleHttpModule" type="SitefinityWebApp.UserRoleHttpModule"/> </modules>
现在,当我 运行 来自 IIS 的页面并在 visual studio 中使用 w3wp.exe 执行 "attach to process" 时。我在 httpModule 中的断点从来没有遇到过问题。我尝试构建解决方案并且构建成功。
任何帮助将不胜感激。
谢谢
您确定 HttpModule 正在执行,以验证将以下内容添加到 PostAuthenticateRequest,如果是,它应该重定向到 microsoft.com。
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Redirect("http://www.microsoft.com");