-1

我们正在尝试在我们的一个 asp.net mvc 4 应用程序中模拟基于联合安全性的身份验证。

实际上这个 web 应用程序最终会使用联邦安全认证,但是这个认证服务还远远没有准备好,需要一段时间才能测试,但我们需要尽快提供 web 应用程序的演示。所以我想我可以尝试模仿/模拟基于联合安全性的身份验证,例如当我们在 asp.net 中进行自定义成员资格/身份验证时,使用自定义主体来设置 httpcontext.current.user 对象。为联合安全寻找类似的东西。

任何方向都会很棒,任何文章链接?只是想获得一个我可以依赖的基础,并开始自己在我的应用程序中模拟/模仿身份验证。

我已经尝试了很多,但我尝试的所有内容都在谈论模仿/自定义其他身份验证模式,例如表单/窗口等,但是对于与 asp.net mvc 联合,我没有得到任何相关的东西,所以如果有的话,我不得不寻求指导。希望这不是一个坏问题,虽然手指被刺穿了...... :-)

编辑: 基本上我想知道如何编写自定义声明主体(IClaimsPrincipal 接口的自定义实现)来模拟基于声明的身份验证,我可以在我的 mvc 应用程序中访问从这里获得的声明数据,直到我拥有我的真实声明身份验证到位,有什么建议吗?

谢谢...

4

1 回答 1

0

更新:(虚拟 ClaimIdentity);假设您将使用 WIF(程序集 Microsoft.IdentityModel 和 System.IdentityModel)

在您的 Global.asax.cs 中输入:

private class DummyIdentity : IIdentity {
  public string AuthenticationType {
    get { return "Dummy"; }
  }

  public bool IsAuthenticated {
    get { return true; }
  }

  public string Name {
    get { return "DummyUser";  }
  }
}    

void Application_AuthenticateRequest(object sender, EventArgs e) {
  var collection = new ClaimsIdentityCollection();
  var identity = new ClaimsIdentity(new DummyIdentity());
  identity.Claims.Add(new Claim("EnterpriseID", "Whatever"));
  collection.Add(identity);
  var principal = new ClaimsPrincipal(collection);
  Context.User = principal;
}

这也将硬编码 WIF 使用的 ClaimsPrincipal 对请求的身份验证。

于 2013-11-14T16:43:41.017 回答