我一直在尝试使用谷歌帐户在MVC5应用程序中使用OWIN实现外部登录.
如果我已经登录谷歌,点击我的应用程序中的谷歌按钮是好的,它允许我访问logininfo后,我将进入我的注册页面.
如果我点击我的应用程序谷歌按钮时我还没有登录谷歌,我会被提示按预期登录谷歌,但回叫接收器似乎没有看到我登录,因为logininfo始终为null回调中的场景如下......
[AllowAnonymous]
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
// Code omitted for brevity.
}
}
Run Code Online (Sandbox Code Playgroud)
有没有人有解决方法或解释?这几乎就像外部cookie在登录谷歌之后才能提供给OWIN.
使用实体框架 6,我有一个 Person 类...
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Relationship> Relationships { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和一个关系类
public class Relationship
{
public int ID { get; set; }
public RelationshipType DependencyType { get; set; }
[ForeignKey("Person")]
public int PersonID { get; set; }
public virtual Person Person { get; set; }
public virtual ICollection<Person> RelatedPersons { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望这代表的是,例如,我可能将兄弟姐妹作为一种关系类型,将叔叔和阿姨作为另一种关系类型,并持有这些类型的关系,而无需知道父母是谁,因为他们可能不在数据库中。
使用 Code First,这会生成一个表模式...
CREATE …Run Code Online (Sandbox Code Playgroud)