以前、mvc アプリケーションを mvc2 から mvc 3 に更新し、先週 mvc 4 に更新しました。また、IIS6 サーバーから IIS7 サーバーに移動しました。
現在、mvc ルーティングによって生成された多くの URL には、url にトークンが含まれています。このような:
このトークンは、画像を含め、ページ上のすべての URL の 70% に適用されます。Cookie を使用しないブラウザーの Forms Auth トークンのように見えます。しかし、web.config で Cookieless を無効にしました (Cookie のみに設定しました)。また、すべてのブラウザー (Cookie が有効になっている) に適用され、ユーザーがサインインしていない場合でも適用されます。
この問題を解決するには?何か案は?新しい mvc にアップグレードしたときに何かを見逃していたと思います。
アップデート。次の方法(web.config)でCookielessを無効にしようとしました:
<sessionState cookieless="false" />
<authentication mode="Forms">
<forms loginUrl="~/LogOn" timeout="2880" cookieless="UseCookies" />
</authentication>
UPD1. いくつかの一般的な部分ビューをレンダリングするために、マスター ページでいくつかの RenderAction コマンドを使用します。これらのパーツのコントローラ メソッドには、OututCache 属性を付けました。この属性を削除し、すべての URL が適切に表示されるようになりました。それは非常に奇妙ですが、私を助けました。
<%Html.RenderAction("BlogPosts", "Widgets", new RouteValueDictionary()); %>
[ChildActionOnly]
//[OutputCache(Duration = 180)]
public ActionResult BlogPosts()
{
var model = new BlogListModel();
model.BlogPostType = defService.BlogType();
model.List = widgetService.BlogPosts(3);
return PartialView("Widgets/BlogPostsWidget", model);
}