【发布时间】:2016-07-09 04:57:30
【问题描述】:
我有一个复杂的项目,包括一个 ASP MVC 网站、ASP SignalR 中心和 Xamarin 移动应用程序(所有三个独立的项目)。因为 ASP MVC Web 引用 SignalR 集线器并且两者都托管在一起,所以两个项目只能有一个 OWIN Startup 类(否则我会收到错误消息,说可能只有一个 OWIN Startup 类)。由于我还在 Web 应用程序中使用了 ASP 身份,因此我调用了 app.UseCookieAuthentication 方法,该方法随后需要一个 cookie,然后才能与 SignalR 集线器进行通信。因此 Xamarin 移动应用程序和 SignalR 集线器之间的通信是不可能的。
我相信,这个问题可以用两种不同的方式来回答:
- 是否可以仅在 Web 应用程序中使用 cookie 身份验证和 不在 SignalR 集线器中?通过创建 2 个 OWIN 启动类, 或者通过指定哪些请求真正需要 cookie?
- 如果上述解决方案不可行/“正确”,如何在 Xamarin 应用中实现 cookie 身份验证? official web 建议使用
response.Cookies[FormsAuthentication.FormsCookieName],但FormsAuthentication.FormsCookieName在 Xamarin 中不可用。我应该如何创建 cookie?然后我能否在访问 SignalR 集线器之前调用 Web 应用登录方法?
【问题讨论】:
-
我遇到了同样的问题,我在现有应用程序上有基于 cookie 的身份验证,需要通过 xamarin signalR 连接到它,这有什么运气吗?
标签: asp.net-mvc xamarin signalr asp.net-identity