Asp.net mvc 如何在Xamarin信号器中使用cookie身份验证

Asp.net mvc 如何在Xamarin信号器中使用cookie身份验证,asp.net-mvc,xamarin,signalr,asp.net-identity,Asp.net Mvc,Xamarin,Signalr,Asp.net Identity,我有一个复杂的项目,包括一个ASP MVC网站、ASP SignalR hub和Xamarin移动应用程序(所有三个独立的项目)。因为ASP MVC web引用SignalR hub,并且两者都托管在一起,所以两个项目只能有一个OWIN启动类(否则我会得到一个错误,即只能有一个OWIN启动类)。由于我在web应用程序中也使用ASP标识,因此我调用app.UseCookieAuthentication方法,该方法在允许我与SignalR hub通信之前需要cookie。因此,Xamarin移动应用

我有一个复杂的项目,包括一个ASP MVC网站、ASP SignalR hub和Xamarin移动应用程序(所有三个独立的项目)。因为ASP MVC web引用SignalR hub,并且两者都托管在一起,所以两个项目只能有一个OWIN启动类(否则我会得到一个错误,即只能有一个OWIN启动类)。由于我在web应用程序中也使用ASP标识,因此我调用
app.UseCookieAuthentication
方法,该方法在允许我与SignalR hub通信之前需要cookie。因此,Xamarin移动应用程序和信号集线器之间的通信是不可能的

我相信这个问题有两个不同的答案:

  • 是否可以仅在Web应用程序和应用程序中使用cookie身份验证 不在信号中心?通过创建2个OWIN启动类, 或者通过指定,哪些请求确实需要cookie
  • 如果上述解决方案不可行/“正确”,我如何在Xamarin应用程序中实现cookie身份验证?建议使用
    response.Cookies[FormsAuthentication.FormScookeName]
    ,但是
    FormsAuthentication.FormScookeName
    在Xamarin中不可用。我应该如何创建cookie?然后,在访问SignalR hub之前,我是否能够调用web应用程序登录方法

  • 当然可以从Xamarin传递身份验证cookie。在某种程度上,您正在进行http调用;http调用可以包括头,而cookie只是一个专门的头。检查您与工作的交互的HTTP通信量,注意应该有一个标题,标题的名称沿.aspnetcookie行,值沿name=reallyLongstringofletersandnumbers行;您可以创建一个API方法,该方法接收用户和密码并授权用户,获取从该请求返回的cookie,并将其包含在任何未来的请求中,包括SignalR请求。我也在做同样的事情,所以如果你找不到你需要的东西,请随时寻求更多帮助。

    我也面临同样的问题,我在现有应用程序上有基于cookie的auth,需要通过xamarin signalR连接到它,这方面运气好吗?