我正在尝试在新的默认项目中使用ASP.NET Identity和SignalR(2.0.1)。
当我在Startup类中评论行app.MapSignalR();
时,登录工作正常。我在方法LogIn中获得“user”,登录用户的用户名显示在页面上(通过Context.User.Identity.GetUserName()
)。
当我在Startup类中取消注释行app.MapSignalR();
时,我在方法LogIn中得到“user”,但是没有显示已登录用户的用户名。当我使用旧的memebership和SignalR时,一切正常。我错过了什么吗?
protected void LogIn(object sender, EventArgs e)
{
if (IsValid)
{
// Validate the user password
var manager = new UserManager();
ApplicationUser user = manager.Find(UserName.Text, Password.Text);
if (user != null)
{
IdentityHelper.SignIn(manager, user, RememberMe.Checked);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
else
{
FailureText.Text = "Invalid username or password.";
ErrorMessage.Visible = true;
}
}
}
using Microsoft.Owin;
using Owin;
[assembly: OwinStartupAttribute(typeof(Tmp.Startup))]
namespace Tmp
{
public partial class Startup {
public void Configuration(IAppBuilder app) {
app.MapSignalR();
}
}
}
答案 0 :(得分:0)
检查您的包看起来像使用webforms和SignalR。 SignalR在owin管道上运行。
如果您正在运行IIS,则需要以下软件包:
Microsoft.Owin.Host.SystemWeb(在您的案例网页中使用ASP.NET请求管道在IIS上运行的基于OWIN的应用程序)
Microsoft.AspNet.SignalR.SystemWeb(允许SignalR使用ASP.NET请求管道在IIS上运行)