5

私はasp.netmvc用のFluentSecurityライブラリで遊んでいます。このライブラリによって公開されるインターフェイスの1つは、次のISecurityContextとおりです。

public interface ISecurityContext
{
    dynamic Data { get; }
    bool CurrenUserAuthenticated();
    IEnumerable<object> CurrenUserRoles();
}

(以下に示すように)「データ」プロパティにアクセスしようとすると、使用できません。他の2つの方法はアクセス可能のようですが。

public class ExperimentalPolicy : ISecurityPolicy
{
    public PolicyResult Enforce(ISecurityContext context)
    {
        dynamic data = context.Data; // Data property is not accessible.
    }
}

私は何が欠けていますか?ありがとう。

4

2 に答える 2

2

DataプロパティISecurityContextは、バージョン2.0まで導入されていません。プレリリースを含まないnugetでインストールされるデフォルトは1.4です。プロパティを持っていない。正しいバージョンを使用していることを確認してください。

于 2012-08-15T19:25:09.997 に答える
0

以下は期待通りに実行されましたが、私があなたとは違うことをしていることはありますか?

void Main()
{
  ATest t = new ATest();
  Experiment z = new Experiment();

  z.TestTest(t);
}

public class ATest : ITest
{
  public dynamic Data {get; set;}

  public ATest()
  {
     Data = new { Test = "This is a string" };
  }
}

// Define other methods and classes here
public interface ITest
{
  dynamic Data { get; }
}

public class Experiment
{
    public int TestTest(ITest context)
    {
       dynamic data = context.Data; 

       Console.WriteLine(data.Test);

       return 0;
    }
}
于 2012-08-15T02:49:43.970 に答える