e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
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;
|
|
}
|
|
|
|
}
|
|
}
|