Tôi đang sử dụng SignalR 1 với ứng dụng web MVC4 C# có xác thực biểu mẫu. Tôi có một mã trong trang bố trí của tôi trong JavaScript:ngắt kết nối ứng dụng khách khỏi tín hiệu phía máy chủ
$(documnet).ready(function(){
connect to hub code ...
})
Tôi muốn ngắt kết nối người dùng tạo ra các trung tâm và bắt đầu kết nối lại sau khi anh ấy làm một tên đăng nhập và xác nhận ok. tôi muốn làm điều đó từ phía máy chủ bên trong điều khiển tài khoản của tôi và phương pháp:
public ActionResult LogOn(LoginModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (System.Web.Security.Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, false);
....here , disconnect from hub
....to make the user reconnect
}
Lý do tôi muốn làm điều đó là bởi vì SignalR ném một lỗi nếu người dùng thay đổi để chứng thực sau khi đăng nhập và kết nối vẫn còn. Lỗi này là:
Id kết nối có định dạng không chính xác.
tôi gọi là "$ .connectino.hub. khởi đầu();" trên mọi trạng thái sẵn sàng của tài liệu .. là OK để gọi "$ .connection.hub.stop();" trước ? –
Bạn sẽ phải lấy nó từ máy khách khi người dùng kết nối với hub và lưu trữ nó để có thể so sánh nó với bất kỳ kết nối mới nào, điều này cũng sẽ ngăn chặn các cuộc tấn công mạo danh. –