Fix: SignalR Authorize & Firefox Compatibility

Changes in architecture to support authorization and temporary
workaround for NTLM in Firefox (to be removed in SignalR 2.x). Thanks to
@davidfowl
This commit is contained in:
Gary Sharp
2013-05-16 19:27:28 +10:00
parent 664cde59eb
commit 06071679a9
17 changed files with 227 additions and 96 deletions
@@ -0,0 +1,36 @@
using Microsoft.AspNet.SignalR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.BI.Interop.SignalRHandlers
{
public class AuthorizedPersistentConnection : PersistentConnection
{
private string[] authorizedUserTypes = null;
protected virtual string[] AuthorizedUserTypes { get { return authorizedUserTypes; } }
protected override bool AuthorizeRequest(IRequest request)
{
if (!request.User.Identity.IsAuthenticated)
return false;
else
{
var user = UserBI.UserCache.CurrentUser;
if (user == null)
return false;
if (AuthorizedUserTypes == null || AuthorizedUserTypes.Length == 0)
return true;
if (AuthorizedUserTypes.Contains(user.Type))
return true;
return false;
}
}
}
}