在Razor视图中找不到AuthenticationManager.GetExternalLoginInfoAsync()

时间:2017-04-22 10:09:25

标签: asp.net-mvc

我在我的mvc5应用程序中使用外部登录提供程序。在我的控制器中,我可以使用下面的内容来检查是否有任何外部登录信息

await AuthenticationManager.GetExternalLoginInfoAsync();

如何在剃须刀视图中使用此功能来检查外部登录信息是否存在。 我在下面使用

 if (HttpContext.Current.GetOwinContext()==null)
    {
     ...............
    }

这似乎有效,但

  

HttpContext.Current.GetOwinContext()

注销后,

仍然不为空 我需要在ExternalLogInConfirmation页面中显示/隐藏一些信息

1 个答案:

答案 0 :(得分:0)

我为此

创建了一个扩展方法
namespace MyApp.ExtensionMethods
{
    public static class Extentions
        {
        public static bool IsExternalLogInfoExists(this IPrincipal principal)
        {

           return HttpContext.Current.GetOwinContext().
                  Authentication.GetExternalLoginInfo()==null?false:true;
        }
    }
}

然后在我看来

if (!User.IsExternalLogInfoExists())
    {
     //show/hide any thing
    }

当然,最重要的是你需要添加命名空间。在我的情况下

@using MyApp.ExtensionMethods;