OWIN MVC - 多登录提供程序,当前登录提供者
我有多个登录提供程序可用。我可以使用外部帐户登录或使用表单身份验证。一切正常。 我将用户重定向到HomePage,现在我想知道使用了哪个登录提供程序。OWIN MVC - 多登录提供程序,当前登录提供者
是否有可能在控制器中找到哪个loginprovider被使用?
感谢您的帮助!
回答:
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); string provider = loginInfo.Login.LoginProvider; // Facebook, Google, Twitter, Microsoft...
回答:
我得到了这个工作,虽然它不是在所有情况下都能工作的东西。
这是我在HomeController的功能使用的代码:
// get the provider name var authCtx = HttpContext.GetOwinContext();
var usrMgr = authCtx.GetUserManager<ApplicationUserManager>();
var user = usrMgr.FindByName(HttpContext.User.Identity.Name);
var extLoginInfo = usrMgr.GetLogins(user.Id).FirstOrDefault();
var loginProvider = extLoginInfo.LoginProvider.ToLower();
主要的问题在这里的是,我没有得到该用户当前登录与实际登录提供。我只是获得与此用户关联的第一个登录提供程序(在我的情况下恰好是相同的,所以它的工作原理)。
很好找到一种方法来获取用户当前登录的实际提供者。
以上是 OWIN MVC - 多登录提供程序,当前登录提供者 的全部内容, 来源链接: utcz.com/qa/264059.html