以下のように、Microsoft.IdentityModel名前空間のクラス/インターフェイスを使用してASP.NET MVC Razor wiewsで問題が発生し、デザインモードとランタイムモードの両方で問題が発生しました。
「型または名前空間名 'IdentityModel' は、名前空間 'Microsoft' に存在しません (アセンブリ参照がありませんか?)」
同じことがHttpCompileExceptionとして実行時にも表示されるようです。
上記は、同じプロジェクトのコントローラーまたはビューモデル内から参照されている場合は問題ありません。
コード例を以下に示します (以下のコードの IdentityModel 行番号 2 は、設計上、赤で下線が引かれています)。
@using System.Security.Principal;
@using Microsoft.IdentityModel.Claims;
@model IPrincipal
@{
ViewBag.Title = "Claims";
Layout = null;
}
@if (Model is IClaimsPrincipal)
{
IClaimsIdentity identity = Model.Identity as IClaimsIdentity;
...
コンテキストは以下のようなものです
- asp.net 4.0 MVC Web アプリケーション
- VS2010
- WIF3.5
Microsoft.IdentityModel.dll アセンブリ (WIF SDK を事前にインストール) を asp.net mvc 4 Web プロジェクトに追加しました。
ありがとう