MVC IIS7 HttpContext.Current.Profile为null

时间:2011-09-04 13:36:56

标签: asp.net-mvc iis-7 asp.net-mvc-routing

我正在尝试设置我的网站以使用IIS7 MVC 3。

起初HttpContext.Current.User为null,

然后我删除并添加了模型:Session,FormsAuthentication 在system.webServer Models中,现在HttpContext.Current.User不为null。

但是HttpContext.Current.Profile为null,我找不到解决方法。

如果我设置<modules runAllManagedModulesForAllRequests="true">它解决了问题,但由于性能问题,我不想使用它。

<models>中个人资料的FormsAuthentication等效模型是什么?

有没有办法在不使用runAllManagedModulesForAllRequests的情况下获取配置文件?

Web.Config中:

 <system.webServer>
<handlers>
  <remove name="ASP.NET MVC" />
  <add name="ASP.NET MVC" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness64" />

  <remove name="MvcHttpHandler" />
  <add name="MvcHttpHandler" preCondition="integratedMode" verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler" />
  <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />


</handlers>
<validation validateIntegratedModeConfiguration="false" />
<modules>
  <remove name="WindowsAuthentication" />
  <remove name="PassportAuthentication" />

  <remove name="UrlRoutingModule-4.0" />
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  <remove name="Session" />
  <remove name="FormsAuthentication" />
  <add name="Session" type="System.Web.SessionState.SessionStateModule" />
  <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />

</modules>

1 个答案:

答案 0 :(得分:2)

我找到了模型列表: http://msdn.microsoft.com/en-us/library/9b9dh535.aspx

并最终删除并添加了我使用的所有模块。

如果您知道在IIS 7上获取配置文件和使用MVC路由的角色的更好方法,请告诉我。

 <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
      <remove name="Session" />
      <remove name="FormsAuthentication" />
      <remove name="Profile" />
      <remove name="RoleManager" />
      <remove name="OutputCache" />
      <add name="Session" type="System.Web.SessionState.SessionStateModule" />
      <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
      <add name="Profile" type="System.Web.Profile.ProfileModule" />
      <add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
      <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />