public static void Main(string[] args) { DnsPermission permission = new DnsPermission(System.Security.Permissions.PermissionState.Unrestricted); permission.Demand(); //创建一个SecurityElement对象来控制DnsPermission实例 SecurityElement securityElementObj = permission.ToXml(); Console.WriteLine("Tag,Attributes and Values of 'DnsPermission' instance :"); //输出属性名称和值 PrintKeysAndValues(securityElementObj.Attributes); }
// <Snippet1> public void useDns() { // Create a DnsPermission instance. DnsPermission permission = new DnsPermission(PermissionState.Unrestricted); // Check for permission. permission.Demand(); // Create a SecurityElement object to hold XML encoding of the DnsPermission instance. SecurityElement securityElementObj = permission.ToXml(); Console.WriteLine("Tag, Attributes and Values of 'DnsPermission' instance :"); Console.WriteLine("\n\tTag :" + securityElementObj.Tag); // Print the attributes and values. PrintKeysAndValues(securityElementObj.Attributes); }
// <Snippet1> public void useDns() { // Create a DnsPermission instance. permission = new DnsPermission(PermissionState.Unrestricted); DnsPermission dnsPermission1 = new DnsPermission(PermissionState.None); // Check for permission. permission.Demand(); dnsPermission1.Demand(); // Print the attributes and values. Console.WriteLine("Attributes and Values of 'DnsPermission' instance :"); PrintKeysAndValues(permission.ToXml().Attributes); Console.WriteLine("Attributes and Values of specified 'DnsPermission' instance :"); PrintKeysAndValues(dnsPermission1.ToXml().Attributes); Subset(dnsPermission1); }
// <Snippet1> public void UseDns() { // Create a DnsPermission instance. DnsPermission myPermission = new DnsPermission(PermissionState.Unrestricted); // Check for permission. myPermission.Demand(); // Create an identical copy of the above 'DnsPermission' object. DnsPermission myPermissionCopy = (DnsPermission)myPermission.Copy(); Console.WriteLine("Attributes and Values of 'DnsPermission' instance :"); // Print the attributes and values. PrintKeysAndValues(myPermission.ToXml().Attributes); Console.WriteLine("Attribute and values of copied instance :"); PrintKeysAndValues(myPermissionCopy.ToXml().Attributes); }
// <Snippet2> public void useDns() { // Create a DnsPermission instance. dnsPermission1 = new DnsPermission(PermissionState.Unrestricted); dnsPermission2 = new DnsPermission(PermissionState.None); // Check for permission. dnsPermission1.Demand(); dnsPermission2.Demand(); Console.WriteLine("Attributes and Values of first DnsPermission instance :"); PrintKeysAndValues(dnsPermission1.ToXml().Attributes); Console.WriteLine("Attributes and Values of second DnsPermission instance :"); PrintKeysAndValues(dnsPermission2.ToXml().Attributes); Console.WriteLine("Union of both instances : "); MyUnion(); Console.WriteLine("Intersection of both instances : "); MyIntersection(); }
/// <summary> /// /// </summary> /// <param name="dnsServer"></param> /// <param name="host"></param> /// <param name="queryType"></param> /// <param name="queryClass"></param> /// <param name="protocol"></param> /// <param name="messageSecurityProvider">The instance of the message security provider to use to secure the DNS request.</param> /// <returns>A <see cref="T:DnDns.Net.Dns.DnsQueryResponse"></see> instance that contains the Dns Answer for the request query.</returns> /// <PermissionSet> /// <IPermission class="System.Net.DnsPermission, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /> /// </PermissionSet> public DnsQueryResponse Resolve(string dnsServer, string host, NsType queryType, NsClass queryClass, ProtocolType protocol, IMessageSecurityProvider messageSecurityProvider) { // Do stack walk and Demand all callers have DnsPermission. _dnsPermissions.Demand(); byte[] bDnsQuery = this.BuildDnsRequest(host, queryType, queryClass, protocol, messageSecurityProvider); // Connect to DNS server and get the record for the current server. IPHostEntry ipe = System.Net.Dns.GetHostEntry(dnsServer); IPAddress ipa = ipe.AddressList[0]; IPEndPoint ipep = new IPEndPoint(ipa, (int)UdpServices.Domain); byte[] recvBytes = null; switch (protocol) { case ProtocolType.Tcp: { recvBytes = ResolveTcp(bDnsQuery, ipep); break; } case ProtocolType.Udp: { recvBytes = ResolveUdp(bDnsQuery, ipep); break; } default: { throw new InvalidOperationException("Invalid Protocol: " + protocol); } } Trace.Assert(recvBytes != null, "Failed to retrieve data from the remote DNS server."); DnsQueryResponse dnsQR = new DnsQueryResponse(); dnsQR.ParseResponse(recvBytes, protocol); return(dnsQR); }
// <Snippet1> public void useDns() { // Create a DnsPermission instance. DnsPermission permission = new DnsPermission(PermissionState.Unrestricted); // Check for permission. permission.Demand(); Console.WriteLine("Attributes and Values of DnsPermission instance :"); // Print the attributes and values. PrintKeysAndValues(permission.ToXml().Attributes); // Check the permission state. if (permission.IsUnrestricted()) { Console.WriteLine("Overall permissions : Unrestricted"); } else { Console.WriteLine("Overall permissions : Restricted"); } }
/// <PermissionSet> /// <IPermission class="System.Net.DnsPermission, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /> /// </PermissionSet> public Response Query(string host, NsType queryType, NsClass queryClass, ProtocolType protocol) { // Do stack walk and Demand all callers have DnsPermission. _dnsPermissions.Demand(); var query = _requestBuilder.Build(host, queryType, queryClass, protocol); // Connect to DNS server and get the record for the current server. byte[] responseBytes = null; var resolver = _resolverFactory.Get(protocol); responseBytes = resolver.Resolve(query, _serverEndPoint); Trace.Assert(responseBytes != null, "Failed to retrieve data from the remote DNS server."); var response = _responseParser.ParseResponse(responseBytes); return(response); }
private void Window_Loaded(object sender, RoutedEventArgs e) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; try { //demand WebPermissions. WebPermission wp = new WebPermission(); DnsPermission dperm = new DnsPermission(PermissionState.Unrestricted); dperm.Demand(); wp.Demand(); //dbase.DbConnection_Progress(); DbConnection getcon = dbase.GetConnection(); } catch (Exception exx) { //log the error. DataLayer.LogClient("Exception:" + exx.Message + " Stack Trace:" + exx.StackTrace); //show a message. dbase.WriteDebugMessage(DataLayer.GetExceptionData(exx)); MessageBox.Show(this, "Error Connecting to the Database:" + exx.Message); Close(); } OperatingMode = OperatingModeConstants.OpMode_PinEntry; //dbase = new DataLayer(DataLayer.ConnectionTypeConstants.Connection_Client); lstLogEntries.ItemsSource = MessageLog; //connect to the DB right NAU! WorkOrderEntry.MaxLength = dbase.Configuration.WorkOrderMaxLength; //make various items collapsed if the config calls for it... lstLogEntries.Visibility = !dbase.Configuration.Client_ShowActivityLog ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible; UserListExpander.Visibility = !dbase.Configuration.Client_ShowUserList ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible; lblLogEntry.Visibility = lstLogEntries.Visibility; if (dbase.Configuration.Client_PasswordPIN) { lblPIN.Visibility = System.Windows.Visibility.Collapsed; lblPINpass.Visibility = System.Windows.Visibility.Visible; } //now, bind lstLogEntries to the MESSAGELOG database... /* ObservableCollection<MessageActivityLogItem> GeneralLog = dbase.GetLogMessages("GENERAL"); * lstLogEntries.ItemsSource=GeneralLog;*/ //lstLogEntries VersionLabel.Content = GetVersionData(); //set the timer that will periodically (every 20 seconds or so) refresh the listbox. //the IDEAL case would be to use some sort of binding but...meh. refreshUserListTimer = new DispatcherTimer(); refreshUserListTimer.Interval = new TimeSpan(0, 0, 0, 30); refreshUserListTimer.Tick += new EventHandler(refreshUserListTimer_Tick); refreshUserListTimer.Start(); refreshUserListTimer_Tick(refreshUserListTimer, null); //now that there is the admin panel, the seeding code is unneeded :D try { //dbase.SeedDB(); } catch (Exception seedexception) { Debug.Print("Exception while seeding..."); } }