| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 
							- using System;
 
- using System.Net;
 
- using System.Security.Principal;
 
- using MediaBrowser.Model.Cryptography;
 
- using MediaBrowser.Model.IO;
 
- using MediaBrowser.Model.Logging;
 
- using MediaBrowser.Model.Text;
 
- using SocketHttpListener.Net.WebSockets;
 
- using SocketHttpListener.Primitives;
 
- using System.Threading.Tasks;
 
- namespace SocketHttpListener.Net
 
- {
 
-     public sealed unsafe partial class HttpListenerContext
 
-     {
 
-         internal HttpListener _listener;
 
-         private HttpListenerResponse _response;
 
-         private IPrincipal _user;
 
-         public HttpListenerRequest Request { get; }
 
-         public IPrincipal User => _user;
 
-         // This can be used to cache the results of HttpListener.AuthenticationSchemeSelectorDelegate.
 
-         internal AuthenticationSchemes AuthenticationSchemes { get; set; }
 
-         public HttpListenerResponse Response
 
-         {
 
-             get
 
-             {
 
-                 return _response;
 
-             }
 
-         }
 
-         public Task<HttpListenerWebSocketContext> AcceptWebSocketAsync(string subProtocol)
 
-         {
 
-             return AcceptWebSocketAsync(subProtocol, HttpWebSocket.DefaultReceiveBufferSize, WebSocket.DefaultKeepAliveInterval);
 
-         }
 
-         public Task<HttpListenerWebSocketContext> AcceptWebSocketAsync(string subProtocol, TimeSpan keepAliveInterval)
 
-         {
 
-             return AcceptWebSocketAsync(subProtocol, HttpWebSocket.DefaultReceiveBufferSize, keepAliveInterval);
 
-         }
 
-     }
 
-     public class GenericPrincipal : IPrincipal
 
-     {
 
-         private IIdentity m_identity;
 
-         private string[] m_roles;
 
-         public GenericPrincipal(IIdentity identity, string[] roles)
 
-         {
 
-             if (identity == null)
 
-                 throw new ArgumentNullException("identity");
 
-             m_identity = identity;
 
-             if (roles != null)
 
-             {
 
-                 m_roles = new string[roles.Length];
 
-                 for (int i = 0; i < roles.Length; ++i)
 
-                 {
 
-                     m_roles[i] = roles[i];
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 m_roles = null;
 
-             }
 
-         }
 
-         public virtual IIdentity Identity
 
-         {
 
-             get
 
-             {
 
-                 return m_identity;
 
-             }
 
-         }
 
-         public virtual bool IsInRole(string role)
 
-         {
 
-             if (role == null || m_roles == null)
 
-                 return false;
 
-             for (int i = 0; i < m_roles.Length; ++i)
 
-             {
 
-                 if (m_roles[i] != null && String.Compare(m_roles[i], role, StringComparison.OrdinalIgnoreCase) == 0)
 
-                     return true;
 
-             }
 
-             return false;
 
-         }
 
-     }
 
- }
 
 
  |