如何判断W.I.F令牌是否存在? - 最好的方法

时间:2011-11-21 12:29:08

标签: wif

我使用的是Windows Identity Foundation。在受W.I.F保护的其中一个站点中,有一个用户注册视图,匿名用户可以浏览到该视图。此时,我想在我的注册控制器中看到当前存在W.I.F令牌:

我打算这样做:

public bool HasWifToken(HttpContextBase httpContextBase)
        {
            var claimsIdentity = httpContextBase.User.Identity as IClaimsIdentity;
            if (claimsIdentity == null)
            {
                return false;
            }

            return claimsIdentity.Claims.Count > 0;
        }

但有没有更好的方法来查看您是否有实时令牌?非常感谢。

2 个答案:

答案 0 :(得分:1)

最简单的方法是:

var hasWifToken = httpContextBase.User.Identity.IsAuthenticated;

如果您使用的是WIF,IsAuthenticated会告诉您是否存在令牌(即用户已登录)。

答案 1 :(得分:1)

是的 - 您可以在IdentityMode.Claims.ClaimsIdentity中使用IsAuthenticated。

有趣的是,它的设置方式非常符合你的方法 - 基本上它会检查claim.Count> 0!