0

以下のように、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 プロジェクトに追加しました。

ありがとう

4

2 に答える 2

0

名前空間が見つからない場合は、次のように追加します。

<add namespace="System.Security.Principal" />
<add namespace="Microsoft.IdentityModel.Claims" />

これは、views フォルダーの web.config にあります。

私は別の可能な解決策を見つけました:

http://social.msdn.microsoft.com/Forums/en/wcf/thread/f7fbcd78-48a0-4877-af47-2f5a1af6cc14

Microsoft.IdentityModel.dll アセンブリが機能するためには、プロジェクトのターゲット フレームワークが .NET Framework クライアント プロファイルではないことを確認する必要があります。

プロジェクト - > ProjectName プロパティ...

VS2010 はこのターゲット フレームワークをデフォルトとして使用しているようです。

ここにもう 1 つ: http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/97cb3c15-9253-4ff1-a690-b203a65c0dfd

彼のdllを参照すると、うまくいきました。(元の質問ではありません-さらに下を見てください)

于 2012-10-06T19:21:30.880 に答える
0

サーバー(および開発者用PC)にwifをインストールできます。バイナリ展開できると言う人もいましたが、私たちのプロジェクトではできませんでした

于 2012-10-06T18:23:23.080 に答える