自定义安全令牌服务 - 实现

时间:2014-06-11 10:11:09

标签: c# asp.net-mvc claims-based-identity sts-securitytokenservice

我正在开发一个MVC 4项目。实际上,该项目涉及3个模块,它们相互通信。用户可以购买3个模块或全部模块中的任何模块的许可证。我需要为我们正在创建的网站实施单点登录。所以我们决定使用安全令牌服务,因为它会更安全。

我读过STS,我对它的工作原理有基本的了解。但问题来自于我需要在实际项目中实现它。老实说,我真的不知道如何实现它。谁能告诉我如何实现自定义STS? (我正在研究.NET framework 4.5,MVC 4和Visual Studio 2012)。

根据我的理解,我需要的是继承ClaimsAuthenticationManager并覆盖Authenticate方法? (如我错了请纠正我)。如果是这样的情况我在哪里验证用户名&密码?我已经做了一点实现

public override ClaimsPrincipal Authenticate(string resourceName, ClaimsPrincipal incomingPrincipal)
    {
        if (!incomingPrincipal.Identity.IsAuthenticated)
        {
            return base.Authenticate(resourceName, incomingPrincipal);
        }
        return DressUpPrincipal(incomingPrincipal.Identity.Name);
    }
上述代码incomingPrincipal.Identity.IsAuthenticated中的

始终为false。我如何首先验证用户?

1 个答案:

答案 0 :(得分:1)

我建议你看一下IdentityServer

  

Thinktecture IdentityServer是一个使用.NET 4.5,MVC 4,Web API和WCF构建的轻量级安全令牌服务。