|
//------------------------------------------------------------------------------
// <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;
}
}
}
|