/* * public bool ConnectAll * { * get * { * return m_connect is bool ? (bool) m_connect : false; * } * * set * { * if (m_connect != null) * { * throw new ArgumentException(SR.GetString(SR.net_perm_attrib_multi, "ConnectAll", value), "value"); * } * m_connect = value; * } * } * * public bool AcceptAll * { * get * { * return m_accept is bool ? (bool) m_accept : false; * } * * set * { * if (m_accept != null) * { * throw new ArgumentException(SR.GetString(SR.net_perm_attrib_multi, "AcceptAll", value), "value"); * } * m_accept = value; * } * } */ public override IPermission CreatePermission() { WebPermission perm = null; if (Unrestricted) { perm = new WebPermission(PermissionState.Unrestricted); } else { NetworkAccess access = (NetworkAccess)0; if (m_connect is bool) { if ((bool)m_connect) { access |= NetworkAccess.Connect; } m_connect = null; } if (m_accept is bool) { if ((bool)m_accept) { access |= NetworkAccess.Accept; } m_accept = null; } perm = new WebPermission(access); if (m_accept != null) { if (m_accept is DelayedRegex) { perm.AddAsPattern(NetworkAccess.Accept, (DelayedRegex)m_accept); } else { perm.AddPermission(NetworkAccess.Accept, (string)m_accept); } } if (m_connect != null) { if (m_connect is DelayedRegex) { perm.AddAsPattern(NetworkAccess.Connect, (DelayedRegex)m_connect); } else { perm.AddPermission(NetworkAccess.Connect, (string)m_connect); } } } return(perm); }
public override IPermission CreatePermission() { WebPermission permission = null; if (base.Unrestricted) { return(new WebPermission(PermissionState.Unrestricted)); } NetworkAccess access = 0; if (this.m_connect is bool) { if ((bool)this.m_connect) { access |= NetworkAccess.Connect; } this.m_connect = null; } if (this.m_accept is bool) { if ((bool)this.m_accept) { access |= NetworkAccess.Accept; } this.m_accept = null; } permission = new WebPermission(access); if (this.m_accept != null) { if (this.m_accept is DelayedRegex) { permission.AddAsPattern(NetworkAccess.Accept, (DelayedRegex)this.m_accept); } else { permission.AddPermission(NetworkAccess.Accept, (string)this.m_accept); } } if (this.m_connect != null) { if (this.m_connect is DelayedRegex) { permission.AddAsPattern(NetworkAccess.Connect, (DelayedRegex)this.m_connect); return(permission); } permission.AddPermission(NetworkAccess.Connect, (string)this.m_connect); } return(permission); }
public override IPermission CreatePermission() { WebPermission permission = null; if (base.Unrestricted) { return new WebPermission(PermissionState.Unrestricted); } NetworkAccess access = 0; if (this.m_connect is bool) { if ((bool) this.m_connect) { access |= NetworkAccess.Connect; } this.m_connect = null; } if (this.m_accept is bool) { if ((bool) this.m_accept) { access |= NetworkAccess.Accept; } this.m_accept = null; } permission = new WebPermission(access); if (this.m_accept != null) { if (this.m_accept is DelayedRegex) { permission.AddAsPattern(NetworkAccess.Accept, (DelayedRegex) this.m_accept); } else { permission.AddPermission(NetworkAccess.Accept, (string) this.m_accept); } } if (this.m_connect != null) { if (this.m_connect is DelayedRegex) { permission.AddAsPattern(NetworkAccess.Connect, (DelayedRegex) this.m_connect); return permission; } permission.AddPermission(NetworkAccess.Connect, (string) this.m_connect); } return permission; }
// The union of two web permissions is formed by concatenating // the list of allowed regular expressions. There is no check // for duplicates/overlaps /// <include file='doc\WebPermission.uex' path='docs/doc[@for="WebPermission.Union"]/*' /> /// <devdoc> /// <para>Returns the logical union between two <see cref='System.Net.WebPermission'/> instances.</para> /// </devdoc> public override IPermission Union(IPermission target) { // Pattern suggested by Security engine if (target == null) { return(this.Copy()); } WebPermission other = target as WebPermission; if (other == null) { throw new ArgumentException(SR.GetString(SR.net_perm_target)); } if (m_noRestriction || other.m_noRestriction) { return(new WebPermission(true)); } WebPermission result = (WebPermission)other.Copy(); for (int i = 0; i < m_connectList.Count; i++) { Regex uriPattern = m_connectList[i] as Regex; if (uriPattern == null) { result.AddPermission(NetworkAccess.Connect, m_connectList[i].ToString()); } else { result.AddPermission(NetworkAccess.Connect, uriPattern); } } for (int i = 0; i < m_acceptList.Count; i++) { Regex uriPattern = m_acceptList[i] as Regex; if (uriPattern == null) { result.AddPermission(NetworkAccess.Accept, m_acceptList[i].ToString()); } else { result.AddPermission(NetworkAccess.Accept, uriPattern); } } return(result); }
/// <summary>Creates and returns a new instance of the <see cref="T:System.Net.WebPermission" /> class.</summary> /// <returns>A <see cref="T:System.Net.WebPermission" /> corresponding to the security declaration.</returns> /// <PermissionSet> /// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" /> /// </PermissionSet> public override IPermission CreatePermission() { if (base.Unrestricted) { return(new WebPermission(PermissionState.Unrestricted)); } WebPermission webPermission = new WebPermission(); if (this.m_accept != null) { webPermission.AddPermission(NetworkAccess.Accept, (WebPermissionInfo)this.m_accept); } if (this.m_connect != null) { webPermission.AddPermission(NetworkAccess.Connect, (WebPermissionInfo)this.m_connect); } return(webPermission); }
// Create a permission object that corresponds to this attribute. public override IPermission CreatePermission() { if (Unrestricted) { return(new WebPermission (PermissionState.Unrestricted)); } else { WebPermission perm = new WebPermission(); if (accept != null) { perm.AddPermission(NetworkAccess.Accept, accept); } if (connect != null) { perm.AddPermission(NetworkAccess.Connect, connect); } return(perm); } }
/// <include file='doc\WebPermission.uex' path='docs/doc[@for="WebPermissionAttribute.CreatePermission"]/*' /> public override IPermission CreatePermission() { WebPermission perm = null; if (Unrestricted) { perm = new WebPermission(PermissionState.Unrestricted); } else { perm = new WebPermission(PermissionState.None); if (m_accept != null) { if (m_accept is Regex) { perm.AddPermission(NetworkAccess.Accept, (Regex)m_accept); } else { perm.AddPermission(NetworkAccess.Accept, m_accept.ToString()); } } if (m_connect != null) { if (m_connect is Regex) { perm.AddPermission(NetworkAccess.Connect, (Regex)m_connect); } else { perm.AddPermission(NetworkAccess.Connect, m_connect.ToString()); } } } return(perm); }
// Create a permission object that corresponds to this attribute. public override IPermission CreatePermission() { if(Unrestricted) { return new WebPermission (PermissionState.Unrestricted); } else { WebPermission perm = new WebPermission(); if(accept != null) { perm.AddPermission(NetworkAccess.Accept, accept); } if(connect != null) { perm.AddPermission(NetworkAccess.Connect, connect); } return perm; } }
public Tuple<String, int> Web_Read(string url) { int statusCode = 200; string result = ""; WebRequest request = null; WebResponse response = null; StreamReader reader = null; try { //asking for permission to call the specified url. WebPermission permission = new WebPermission(); permission.AddPermission(NetworkAccess.Connect, url); permission.Assert(); request = WebRequest.Create(url); response = request.GetResponse(); reader = new StreamReader(response.GetResponseStream()); result = reader.ReadToEnd(); } catch (WebException ex) { //Properly handling http errors here if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null) { var resp = (HttpWebResponse)ex.Response; switch (resp.StatusCode) { case HttpStatusCode.NotFound: result = "eror"; statusCode = 404; break; case HttpStatusCode.Forbidden: result = "error"; statusCode = 403; break; case HttpStatusCode.InternalServerError: result = "error"; statusCode = 500; break; } } } catch (Exception) { //placeholder for other sorts of exceptions } finally { // general cleanup if (reader != null) { reader.Close(); //closes the reader and the response stream it was working on at the same time. } if (request != null) { request = null; //not really needed but general cleanup } } return Tuple.Create(result, statusCode); }
public override IPermission Union(IPermission target) { if (target == null) { return this.Copy(); } WebPermission permission = target as WebPermission; if (permission == null) { throw new ArgumentException(SR.GetString("net_perm_target"), "target"); } if (this.m_noRestriction || permission.m_noRestriction) { return new WebPermission(true); } WebPermission permission2 = new WebPermission(); if (this.m_UnrestrictedConnect || permission.m_UnrestrictedConnect) { permission2.m_UnrestrictedConnect = true; } else { permission2.m_connectList = (ArrayList) permission.m_connectList.Clone(); for (int j = 0; j < this.m_connectList.Count; j++) { DelayedRegex uriRegexPattern = this.m_connectList[j] as DelayedRegex; if (uriRegexPattern == null) { if (this.m_connectList[j] is string) { permission2.AddPermission(NetworkAccess.Connect, (string) this.m_connectList[j]); } else { permission2.AddPermission(NetworkAccess.Connect, (Uri) this.m_connectList[j]); } } else { permission2.AddAsPattern(NetworkAccess.Connect, uriRegexPattern); } } } if (this.m_UnrestrictedAccept || permission.m_UnrestrictedAccept) { permission2.m_UnrestrictedAccept = true; return permission2; } permission2.m_acceptList = (ArrayList) permission.m_acceptList.Clone(); for (int i = 0; i < this.m_acceptList.Count; i++) { DelayedRegex regex2 = this.m_acceptList[i] as DelayedRegex; if (regex2 == null) { if (this.m_acceptList[i] is string) { permission2.AddPermission(NetworkAccess.Accept, (string) this.m_acceptList[i]); } else { permission2.AddPermission(NetworkAccess.Accept, (Uri) this.m_acceptList[i]); } } else { permission2.AddAsPattern(NetworkAccess.Accept, regex2); } } return permission2; }
//status code initial value set to -1 //You should never get that value. //It should be 200 for succes //204 for succes but empty response //any other return code is an error //408 is a timeout error. public Tuple<String, int> Web_Read(string url, int timeout) { int statusCode = -1; string result = ""; StreamReader reader = null; try { //asking for permission to call the specified url. var permission = new WebPermission(); permission.AddPermission(NetworkAccess.Connect, url); permission.Assert(); WebRequest request = WebRequest.Create(url); request.Timeout = (timeout == 0) ? request.Timeout : timeout; WebResponse response = request.GetResponse(); Stream grs = response.GetResponseStream(); if (grs != null) { reader = new StreamReader(grs); result = reader.ReadToEnd(); } //if the response is empty it will officially return a 204 status code. //This is according to the http specification. if (result.Length < 1) { result = "error"; statusCode = 204; } else { //response code 200: HTTP OK request was made succesfully. statusCode = 200; } } catch (WebException ex) { var resp = (HttpWebResponse)ex.Response; if (resp == null) statusCode = 500; else { //Will parse all .net known http status codes. int.TryParse(resp.StatusCode.ToString(), out statusCode); } result = "error"; } catch (Exception e) { Debug.WriteLine(e); if (Debugger.IsAttached) Debugger.Break(); } finally { // general cleanup if (reader != null) { reader.Close(); //closes the reader and the response stream it was working on at the same time. } } return Tuple.Create(result, statusCode); }
// Methods public override IPermission CreatePermission () { if (this.Unrestricted) return new WebPermission (PermissionState.Unrestricted); WebPermission newPermission = new WebPermission (); if (m_accept != null) { newPermission.AddPermission (NetworkAccess.Accept, (WebPermissionInfo) m_accept); } if (m_connect != null) { newPermission.AddPermission (NetworkAccess.Connect, (WebPermissionInfo) m_connect); } return newPermission; }
public Tuple<String, int> Web_Read(string url) { int statusCode = 200; string result = ""; StreamReader reader = null; try { //asking for permission to call the specified url. var permission = new WebPermission(); permission.AddPermission(NetworkAccess.Connect, url); permission.Assert(); WebRequest request = WebRequest.Create(url); WebResponse response = request.GetResponse(); Stream grs = response.GetResponseStream(); if (grs != null) { reader = new StreamReader(grs); result = reader.ReadToEnd(); } } catch (WebException ex) { //Properly handling http errors here if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null) { var resp = (HttpWebResponse) ex.Response; switch (resp.StatusCode) { case HttpStatusCode.NotFound: result = "eror"; statusCode = 404; break; case HttpStatusCode.Forbidden: result = "error"; statusCode = 403; break; case HttpStatusCode.InternalServerError: result = "error"; statusCode = 500; break; } } } catch (Exception e) { Debug.WriteLine(e); if (Debugger.IsAttached) Debugger.Break(); } finally { // general cleanup if (reader != null) { reader.Close(); //closes the reader and the response stream it was working on at the same time. } } return Tuple.Create(result, statusCode); }
public override IPermission Union(IPermission target) { if (target == null) { return(this.Copy()); } WebPermission permission = target as WebPermission; if (permission == null) { throw new ArgumentException(SR.GetString("net_perm_target"), "target"); } if (this.m_noRestriction || permission.m_noRestriction) { return(new WebPermission(true)); } WebPermission permission2 = new WebPermission(); if (this.m_UnrestrictedConnect || permission.m_UnrestrictedConnect) { permission2.m_UnrestrictedConnect = true; } else { permission2.m_connectList = (ArrayList)permission.m_connectList.Clone(); for (int j = 0; j < this.m_connectList.Count; j++) { DelayedRegex uriRegexPattern = this.m_connectList[j] as DelayedRegex; if (uriRegexPattern == null) { if (this.m_connectList[j] is string) { permission2.AddPermission(NetworkAccess.Connect, (string)this.m_connectList[j]); } else { permission2.AddPermission(NetworkAccess.Connect, (Uri)this.m_connectList[j]); } } else { permission2.AddAsPattern(NetworkAccess.Connect, uriRegexPattern); } } } if (this.m_UnrestrictedAccept || permission.m_UnrestrictedAccept) { permission2.m_UnrestrictedAccept = true; return(permission2); } permission2.m_acceptList = (ArrayList)permission.m_acceptList.Clone(); for (int i = 0; i < this.m_acceptList.Count; i++) { DelayedRegex regex2 = this.m_acceptList[i] as DelayedRegex; if (regex2 == null) { if (this.m_acceptList[i] is string) { permission2.AddPermission(NetworkAccess.Accept, (string)this.m_acceptList[i]); } else { permission2.AddPermission(NetworkAccess.Accept, (Uri)this.m_acceptList[i]); } } else { permission2.AddAsPattern(NetworkAccess.Accept, regex2); } } return(permission2); }
/// <include file='doc\WebPermission.uex' path='docs/doc[@for="WebPermissionAttribute.CreatePermission"]/*' /> public override IPermission CreatePermission() { WebPermission perm = null; if (Unrestricted) { perm = new WebPermission( PermissionState.Unrestricted); } else { perm = new WebPermission(PermissionState.None); if (m_accept != null) { if (m_accept is Regex) { perm.AddPermission(NetworkAccess.Accept, (Regex)m_accept); } else { perm.AddPermission(NetworkAccess.Accept, m_accept.ToString()); } } if (m_connect != null) { if (m_connect is Regex) { perm.AddPermission(NetworkAccess.Connect, (Regex)m_connect); } else { perm.AddPermission(NetworkAccess.Connect, m_connect.ToString()); } } } return perm; }
// The union of two web permissions is formed by concatenating // the list of allowed regular expressions. There is no check // for duplicates/overlaps /// <devdoc> /// <para>Returns the logical union between two <see cref='System.Net.WebPermission'/> instances.</para> /// </devdoc> public override IPermission Union(IPermission target) { // Pattern suggested by Security engine if (target == null) { return(this.Copy()); } WebPermission other = target as WebPermission; if (other == null) { throw new ArgumentException(SR.GetString(SR.net_perm_target), "target"); } if (m_noRestriction || other.m_noRestriction) { return(new WebPermission(true)); } WebPermission result = new WebPermission(); if (m_UnrestrictedConnect || other.m_UnrestrictedConnect) { result.m_UnrestrictedConnect = true; } else { result.m_connectList = (ArrayList)other.m_connectList.Clone(); for (int i = 0; i < m_connectList.Count; i++) { DelayedRegex uriPattern = m_connectList[i] as DelayedRegex; if (uriPattern == null) { if (m_connectList[i] is string) { result.AddPermission(NetworkAccess.Connect, (string)m_connectList[i]); } else { result.AddPermission(NetworkAccess.Connect, (Uri)m_connectList[i]); } } else { result.AddAsPattern(NetworkAccess.Connect, uriPattern); } } } if (m_UnrestrictedAccept || other.m_UnrestrictedAccept) { result.m_UnrestrictedAccept = true; } else { result.m_acceptList = (ArrayList)other.m_acceptList.Clone(); for (int i = 0; i < m_acceptList.Count; i++) { DelayedRegex uriPattern = m_acceptList[i] as DelayedRegex; if (uriPattern == null) { if (m_acceptList[i] is string) { result.AddPermission(NetworkAccess.Accept, (string)m_acceptList[i]); } else { result.AddPermission(NetworkAccess.Accept, (Uri)m_acceptList[i]); } } else { result.AddAsPattern(NetworkAccess.Accept, uriPattern); } } } return(result); }
// The union of two web permissions is formed by concatenating // the list of allowed regular expressions. There is no check // for duplicates/overlaps /// <devdoc> /// <para>Returns the logical union between two <see cref='System.Net.WebPermission'/> instances.</para> /// </devdoc> public override IPermission Union(IPermission target) { // Pattern suggested by Security engine if (target==null) { return this.Copy(); } WebPermission other = target as WebPermission; if(other == null) { throw new ArgumentException(SR.GetString(SR.net_perm_target), "target"); } if (m_noRestriction || other.m_noRestriction) { return new WebPermission(true); } WebPermission result = new WebPermission(); if (m_UnrestrictedConnect || other.m_UnrestrictedConnect) { result.m_UnrestrictedConnect = true; } else { result.m_connectList = (ArrayList) other.m_connectList.Clone(); for (int i = 0; i < m_connectList.Count; i++) { DelayedRegex uriPattern = m_connectList[i] as DelayedRegex; if(uriPattern == null) if (m_connectList[i] is string) result.AddPermission(NetworkAccess.Connect, (string)m_connectList[i]); else result.AddPermission(NetworkAccess.Connect, (Uri)m_connectList[i]); else result.AddAsPattern(NetworkAccess.Connect, uriPattern); } } if (m_UnrestrictedAccept || other.m_UnrestrictedAccept) { result.m_UnrestrictedAccept = true; } else { result.m_acceptList = (ArrayList) other.m_acceptList.Clone(); for (int i = 0; i < m_acceptList.Count; i++) { DelayedRegex uriPattern = m_acceptList[i] as DelayedRegex; if(uriPattern == null) if (m_acceptList[i] is string) result.AddPermission(NetworkAccess.Accept, (string)m_acceptList[i]); else result.AddPermission(NetworkAccess.Accept, (Uri)m_acceptList[i]); else result.AddAsPattern(NetworkAccess.Accept, uriPattern); } } return result; }
/* public bool ConnectAll { get { return m_connect is bool ? (bool) m_connect : false; } set { if (m_connect != null) { throw new ArgumentException(SR.GetString(SR.net_perm_attrib_multi, "ConnectAll", value), "value"); } m_connect = value; } } public bool AcceptAll { get { return m_accept is bool ? (bool) m_accept : false; } set { if (m_accept != null) { throw new ArgumentException(SR.GetString(SR.net_perm_attrib_multi, "AcceptAll", value), "value"); } m_accept = value; } } */ public override IPermission CreatePermission() { WebPermission perm = null; if (Unrestricted) { perm = new WebPermission( PermissionState.Unrestricted); } else { NetworkAccess access = (NetworkAccess) 0; if (m_connect is bool) { if ((bool) m_connect) { access |= NetworkAccess.Connect; } m_connect = null; } if (m_accept is bool) { if ((bool) m_accept) { access |= NetworkAccess.Accept; } m_accept = null; } perm = new WebPermission(access); if (m_accept != null) { if (m_accept is DelayedRegex) { perm.AddAsPattern(NetworkAccess.Accept, (DelayedRegex)m_accept); } else { perm.AddPermission(NetworkAccess.Accept, (string)m_accept); } } if (m_connect != null) { if (m_connect is DelayedRegex) { perm.AddAsPattern(NetworkAccess.Connect, (DelayedRegex)m_connect); } else { perm.AddPermission(NetworkAccess.Connect, (string)m_connect); } } } return perm; }