我正在玩asp.net mvc的FluentSecurity库。此库公开的其中一个接口是ISecurityContext
,如下所示:
public interface ISecurityContext
{
dynamic Data { get; }
bool CurrenUserAuthenticated();
IEnumerable<object> CurrenUserRoles();
}
当我尝试访问“数据”属性时(如下所示),它不可用。虽然其他两种方法似乎都可以访问。
public class ExperimentalPolicy : ISecurityPolicy
{
public PolicyResult Enforce(ISecurityContext context)
{
dynamic data = context.Data; // Data property is not accessible.
}
}
我错过了什么?感谢。
答案 0 :(得分:2)
版本 2.0 之前,Data
上的ISecurityContext
属性未引入。与nuget一起安装但未包含预发行版的默认值为 1.4 。哪个not have the property。确保使用正确的版本!
答案 1 :(得分: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;
}
}