在SignalR Hub中验证用户时,GetHttpContext()为null

问题描述 投票:2回答:1

我正在尝试使用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()始终为null,有人可以解释为什么?

从集线器内调用SignIn方法的最佳方法是什么?

signalr signalr-hub
1个回答
0
投票

古老的问题在这里,但枢纽是一个开放的沟通渠道,所以使用形式auth和身份这样的过程是行不通的。设置标头或设置Cookie的方法没有响应。您需要定期进行HTTP交换。

© www.soinside.com 2019 - 2024. All rights reserved.