You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			121 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| //------------------------------------------------------------------------------
 | |
| // <copyright file="WebService.cs" company="Microsoft">
 | |
| //     Copyright (c) Microsoft Corporation.  All rights reserved.
 | |
| // </copyright>                                                                
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| /*
 | |
|  */
 | |
| namespace System.Web.Services {
 | |
| 
 | |
|     using System.Diagnostics;
 | |
|     using System.Web;
 | |
|     using System.ComponentModel;
 | |
|     using System.Web.SessionState;
 | |
|     using System.Web.Services.Protocols;
 | |
|     using System.Security.Principal;
 | |
|     using System.Security.Permissions;
 | |
|     using System.Runtime.InteropServices;
 | |
| 
 | |
|     /// <include file='doc\WebService.uex' path='docs/doc[@for="WebService"]/*' />
 | |
|     /// <devdoc>
 | |
|     ///    <para>Defines the
 | |
|     ///       optional base class for Web Services, which provides direct access to common
 | |
|     ///       ASP.NET objects, like those for application and session state.</para>
 | |
|     /// </devdoc>
 | |
|     public class WebService : MarshalByValueComponent {
 | |
| 
 | |
|         private HttpContext context;
 | |
| 
 | |
|         /// <include file='doc\WebService.uex' path='docs/doc[@for="WebService.Application"]/*' />
 | |
|         /// <devdoc>
 | |
|         ///    <para>Gets a
 | |
|         ///       reference to the application object for the current HTTP request.</para>
 | |
|         /// </devdoc>
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), Description("The ASP.NET application object for the current request.")]
 | |
|         public HttpApplicationState Application {
 | |
|             [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
 | |
|             get {
 | |
|                 return Context.Application;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\WebService.uex' path='docs/doc[@for="WebService.Context"]/*' />
 | |
|         /// <devdoc>
 | |
|         ///    <para>Gets the ASP.NET Context object for the current request,
 | |
|         ///       which encapsulates all HTTP-specific context
 | |
|         ///       used by the HTTP server to process Web requests.</para>
 | |
|         /// </devdoc>
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), WebServicesDescription(Res.WebServiceContext)]
 | |
|         public HttpContext Context {
 | |
|             [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
 | |
|             get {
 | |
|                 PartialTrustHelpers.FailIfInPartialTrustOutsideAspNet();
 | |
|                 if (context == null)
 | |
|                     context = HttpContext.Current;
 | |
|                 if (context == null)
 | |
|                     throw new InvalidOperationException(Res.GetString(Res.WebMissingHelpContext));
 | |
|                 return context;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\WebService.uex' path='docs/doc[@for="WebService.Session"]/*' />
 | |
|         /// <devdoc>
 | |
|         /// <para>Gets a reference to the <see cref='T:System.Web.HttpSessionState'/>
 | |
|         /// instance for the current request.</para>
 | |
|         /// </devdoc>
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), WebServicesDescription(Res.WebServiceSession)]
 | |
|         public HttpSessionState Session {
 | |
|             [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
 | |
|             get {
 | |
|                 return Context.Session;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\WebService.uex' path='docs/doc[@for="WebService.Server"]/*' />
 | |
|         /// <devdoc>
 | |
|         /// <para>Gets a reference to the <see cref='T:System.Web.HttpServerUtility'/>
 | |
|         /// for the current request.</para>
 | |
|         /// </devdoc>
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), WebServicesDescription(Res.WebServiceServer)]
 | |
|         public HttpServerUtility Server {
 | |
|             [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
 | |
|             get {
 | |
|                 return Context.Server;
 | |
|             }
 | |
|         }       
 | |
| 
 | |
|         /// <include file='doc\WebService.uex' path='docs/doc[@for="WebService.User"]/*' />
 | |
|         /// <devdoc>
 | |
|         ///    <para>Gets the ASP.NET server User object, used for authorizing the request.</para>
 | |
|         /// </devdoc>
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), WebServicesDescription(Res.WebServiceUser)]
 | |
|         public IPrincipal User {
 | |
|             [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
 | |
|             get {
 | |
|                 return Context.User;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <include file='doc\WebService.uex' path='docs/doc[@for="WebService.SoapVersion"]/*' />
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), WebServicesDescription(Res.WebServiceSoapVersion), ComVisible(false)]
 | |
|         public SoapProtocolVersion SoapVersion {
 | |
|             [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
 | |
|             get {
 | |
|                 object o = Context.Items[SoapVersionContextSlot];
 | |
|                 if (o != null && o is SoapProtocolVersion)
 | |
|                     return (SoapProtocolVersion)o;
 | |
|                 else
 | |
|                     return SoapProtocolVersion.Default;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         internal static readonly string SoapVersionContextSlot = "WebServiceSoapVersion";
 | |
| 
 | |
|         internal void SetContext(HttpContext context) {
 | |
|             this.context = context;
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 |