| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- // <copyright>
- // Copyright (c) Microsoft Corporation. All rights reserved.
- // </copyright>
- namespace System.ServiceModel.Channels
- {
- using System;
- using System.Collections.Generic;
- using System.Collections.Specialized;
- using System.Linq;
- using System.Net;
- using System.Net.WebSockets;
- using System.Runtime;
- using System.Security.Principal;
- using System.Text;
- class ServiceWebSocketContext : WebSocketContext
- {
- WebSocketContext context;
- IPrincipal user;
- public ServiceWebSocketContext(WebSocketContext context, IPrincipal user)
- {
- Fx.Assert(context != null, "context should not be null.");
- this.context = context;
- this.user = user;
- }
- public override CookieCollection CookieCollection
- {
- get { return this.context.CookieCollection; }
- }
- public override NameValueCollection Headers
- {
- get { return this.context.Headers; }
- }
- public override bool IsAuthenticated
- {
- get { return this.user != null ? this.user.Identity != null && this.user.Identity.IsAuthenticated : this.context.IsAuthenticated; }
- }
- public override bool IsLocal
- {
- get { return this.context.IsLocal; }
- }
- public override bool IsSecureConnection
- {
- get { return this.context.IsSecureConnection; }
- }
- public override Uri RequestUri
- {
- get { return this.context.RequestUri; }
- }
- public override string SecWebSocketKey
- {
- get { return this.context.SecWebSocketKey; }
- }
- public override string Origin
- {
- get { return this.context.Origin; }
- }
- public override IEnumerable<string> SecWebSocketProtocols
- {
- get { return this.context.SecWebSocketProtocols; }
- }
- public override string SecWebSocketVersion
- {
- get { return this.context.SecWebSocketVersion; }
- }
- public override IPrincipal User
- {
- get { return this.user != null ? this.user : this.context.User; }
- }
- public override WebSocket WebSocket
- {
- get { throw FxTrace.Exception.AsError(new InvalidOperationException(SR.GetString(SR.WebSocketContextWebSocketCannotBeAccessedError))); }
- }
- }
- }
|