我正在尝试使用SignalR Hub中的Asp.Net Identity创建和登录用户,如下所示:
public string CreateUser(string username, string password)
{
var userStore = new UserStore<IdentityUser>();
var manager = new UserManager<IdentityUser>(userStore);
var user = new IdentityUser() { UserName = username };
IdentityResult result = manager.Create(user, password);
if (result.Succeeded)
{
var authenticationManager = Context.Request.GetHttpContext().GetOwinContext().Authentication;
var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
authenticationManager.SignIn(new AuthenticationProperties() { }, userIdentity);
return "Success";
}
else
{
var authenticationManager = Context.Request.GetHttpContext().GetOwinContext().Authentication;
return "Failed: "+result.Errors;
}
}
但是GetHttpContext()总是为空,有人可以解释为什么吗?
从集线器内调用SignIn方法的最佳方法是什么?
答案 0 :(得分:0)
古代问题在这里,但枢纽是一个开放的沟通渠道,所以使用形式认证和身份这样的过程不会起作用。设置标头或设置Cookie的方法没有响应。您需要定期进行HTTP交换。