コード例 #1
0
        protected override string?PropertyValidation(PropertyInfo pi)
        {
            if (LoginWithWindowsAuthenticator || LoginWithActiveDirectoryRegistry)
            {
                if (pi.Name == nameof(DomainName) && !DomainName.HasText())
                {
                    return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
                }

                if (pi.Name == nameof(DomainServer) && !DomainServer.HasText())
                {
                    return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
                }
            }

            if (LoginWithAzureAD)
            {
                if (pi.Name == nameof(Azure_ApplicationID) && !Azure_ApplicationID.HasText())
                {
                    return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
                }

                if (pi.Name == nameof(Azure_DirectoryID) && !Azure_DirectoryID.HasText())
                {
                    return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
                }
            }

            return(base.PropertyValidation(pi));
        }
コード例 #2
0
        /// <summary>
        /// 输出错误状态
        /// </summary>
        /// <param name="state">错误状态</param>
        internal void ResponseError(ResponseState state)
        {
            if (DomainServer != null)
            {
                Response response = DomainServer.GetErrorResponseData(state, Header.IsGZip);
                if (response != null)
                {
                    if (state != ResponseState.NotFound404 || Header.Method != MethodType.GET)
                    {
                        Header.Flag &= HeaderFlag.All ^ HeaderFlag.IsKeepAlive;
                    }
                    if (responseHeader(ref response)) return;
                }
            }
            byte[] data = errorResponseDatas[(int)state];
            System.Net.Sockets.Socket socket = Socket;
            if (data != null && socket != null)
            {
                try
                {
                    SendType = state == ResponseState.NotFound404 && Header.Method == MethodType.GET ? SendType.Next : SendType.Close;
                    Data.Set(data, 0, data.Length);
                    Timeout = Config.GetTimeout(Data.Length);
#if DOTNET2
                    SocketError socketError;
                    IAsyncResult async = socket.BeginSend(data, 0, Data.Length, SocketFlags.None, out socketError, onSendAsyncCallback, socket);
                    if (socketError == SocketError.Success)
                    {
                        if (!async.CompletedSynchronously) Http.Header.ReceiveTimeout.Push(this, socket);
                        return;
                    }
#else
                    sendAsyncLock.EnterSleepFlag();
                    sendAsyncEventArgs.SetBuffer(data, 0, Data.Length);
                    if (socket.SendAsync(sendAsyncEventArgs))
                    {
                        sendAsyncLock.SleepFlag = 0;
                        Http.Header.ReceiveTimeout.Push(this, socket);
                        sendAsyncLock.Exit();
                        return;
                    }
                    sendAsyncLock.ExitSleepFlag();
                    if (onSend()) return;
#endif
                }
                catch (Exception error)
                {
                    Server.RegisterServer.TcpServer.Log.Exception(error, null, LogLevel.Exception | LogLevel.AutoCSer);
                }
            }
            HeaderError();
        }
コード例 #3
0
ファイル: AjaxLoader.cs プロジェクト: AutoCSer/AutoCSer
        /// <summary>
        /// AJAX调用
        /// </summary>
        protected void load()
        {
            try
            {
                AutoCSer.Net.Http.SocketBase socket = Socket;
                AutoCSer.Net.Http.Header     header = Socket.HttpHeader;
                if ((header.Flag & Net.Http.HeaderFlag.IsSetAjaxCallName) != 0)
                {
#if MONO
                    AutoCSer.WebView.AjaxMethodInfo call = methods.Get(header.AjaxCallNameData);
#else
                    AutoCSer.WebView.AjaxMethodInfo call = DomainServer.WebConfigIgnoreCase ? methods.GetLower(header.AjaxCallNameData) : methods.Get(header.AjaxCallNameData);
#endif
                    if (call == null)
                    {
                        byte[] path = DomainServer.GetViewRewrite(header.AjaxCallNameData);
                        if (path.length() != 0)
                        {
                            call = methods.GetNotEmpty(path);
                        }
                    }
                    if (call != null && (!call.IsReferer || header.IsReferer != 0))// || AutoCSer.Config.Pub.Default.IsDebug
                    {
                        if (call.IsViewPage)
                        {
                            if (header.Method == Net.Http.MethodType.GET)
                            {
                                loadView(call);
                                return;
                            }
                        }
                        else if ((header.Method == Net.Http.MethodType.POST || !call.IsPost))
                        {
                            if (header.ContentLength <= call.MaxPostDataSize)
                            {
                                loadAjax(call);
                            }
                            else
                            {
                                socket.ResponseErrorIdentity(AutoCSer.Net.Http.ResponseState.ServerError500);
                            }
                            return;
                        }
                    }
                }
                socket.ResponseErrorIdentity(AutoCSer.Net.Http.ResponseState.NotFound404);
            }
            finally { PushPool(); }
        }
コード例 #4
0
 /// <summary>
 /// 输出错误状态
 /// </summary>
 /// <param name="state">错误状态</param>
 internal void ResponseError(ResponseState state)
 {
     if (DomainServer != null)
     {
         Response response = DomainServer.GetErrorResponseData(state, Header.IsGZip);
         if (response != null)
         {
             if (state != ResponseState.NotFound404 || Header.Method != MethodType.GET)
             {
                 Header.Flag &= HeaderFlag.All ^ HeaderFlag.IsKeepAlive;
             }
             if (responseHeader(ref response))
             {
                 return;
             }
         }
     }
     byte[] data = errorResponseDatas[(int)state];
     System.Net.Sockets.Socket socket = Socket;
     if (data != null && socket != null)
     {
         try
         {
             SendType = state == ResponseState.NotFound404 && Header.Method == MethodType.GET ? SendType.Next : SendType.Close;
             Timeout  = Config.GetTimeout(Data.Length);
             if (!SslStream.BeginWrite(data, 0, data.Length, sendCallback, this).CompletedSynchronously)
             {
                 Http.Header.ReceiveTimeout.Push(this, socket);
             }
             return;
         }
         catch (Exception error)
         {
             Server.RegisterServer.TcpServer.Log.Exception(error, null, LogLevel.Exception | LogLevel.AutoCSer);
         }
     }
     HeaderError();
 }
コード例 #5
0
    protected override string?PropertyValidation(PropertyInfo pi)
    {
        if (LoginWithWindowsAuthenticator || LoginWithActiveDirectoryRegistry)
        {
            if (pi.Name == nameof(DomainName) && !DomainName.HasText())
            {
                return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
            }

            if (pi.Name == nameof(DomainServer) && !DomainServer.HasText())
            {
                return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
            }

            if (pi.Name == nameof(DirectoryRegistry_Username) && DirectoryRegistry_Username != null)
            {
                if (DirectoryRegistry_Username.Contains("@") || DirectoryRegistry_Username.Contains("\\") || DirectoryRegistry_Username.Contains("/"))
                {
                    return(ValidationMessage._0DoesNotHaveAValid1Format.NiceToString(pi.NiceName(), "Simple Username"));
                }
            }
        }

        if (LoginWithAzureAD)
        {
            if (pi.Name == nameof(Azure_ApplicationID) && !Azure_ApplicationID.HasText())
            {
                return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
            }

            if (pi.Name == nameof(Azure_DirectoryID) && !Azure_DirectoryID.HasText())
            {
                return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
            }
        }

        return(base.PropertyValidation(pi));
    }
コード例 #6
0
ファイル: sslStream.cs プロジェクト: guojianbin/fastCSharp
 /// <summary>
 /// 输出错误状态
 /// </summary>
 /// <param name="state">错误状态</param>
 protected override void responseError(response.state state)
 {
     if (boundaryReceiver != null)
     {
         bigBuffers.Push(ref boundaryReceiver.Buffer);
     }
     if (DomainServer != null)
     {
         response = DomainServer.GetErrorResponseData(state, RequestHeader.IsGZip);
         if (response != null)
         {
             if (state != http.response.state.NotFound404 || RequestHeader.Method != web.http.methodType.GET)
             {
                 RequestHeader.IsKeepAlive = false;
             }
             responseHeader();
             return;
         }
     }
     byte[] data = errorResponseDatas[(int)state];
     if (data != null)
     {
         if (state == http.response.state.NotFound404 && RequestHeader.Method == web.http.methodType.GET)
         {
             sender.Send(dataSender.onSendType.Next, subArray <byte> .Unsafe(data, 0, data.Length));
         }
         else
         {
             RequestHeader.IsKeepAlive = false;
             sender.Send(dataSender.onSendType.Close, subArray <byte> .Unsafe(data, 0, data.Length));
         }
     }
     else
     {
         headerError();
     }
 }
コード例 #7
0
        /// <summary>
        /// Serializes this instance of <see cref="ClusterNetwork" /> into a <see cref="Carbon.Json.JsonNode" />.
        /// </summary>
        /// <param name="container">The <see cref="Carbon.Json.JsonObject"/> container to serialize this object into. If the caller
        /// passes in <c>null</c>, a new instance will be created and returned to the caller.</param>
        /// <param name="serializationMode">Allows the caller to choose the depth of the serialization. See <see cref="Microsoft.Rest.ClientRuntime.SerializationMode"/>.</param>
        /// <returns>
        /// a serialized instance of <see cref="ClusterNetwork" /> as a <see cref="Carbon.Json.JsonNode" />.
        /// </returns>
        public Carbon.Json.JsonNode ToJson(Carbon.Json.JsonObject container, Microsoft.Rest.ClientRuntime.SerializationMode serializationMode)
        {
            container = container ?? new Carbon.Json.JsonObject();

            bool returnNow = false;

            BeforeToJson(ref container, ref returnNow);
            if (returnNow)
            {
                return(container);
            }
            AddIf(null != DomainServer ? (Carbon.Json.JsonNode)DomainServer.ToJson(null) : null, "domain_server", container.Add);
            AddIf(null != ExternalDataServicesIp ? (Carbon.Json.JsonNode) new Carbon.Json.JsonString(ExternalDataServicesIp) : null, "external_data_services_ip", container.Add);
            AddIf(null != ExternalIp ? (Carbon.Json.JsonNode) new Carbon.Json.JsonString(ExternalIp) : null, "external_ip", container.Add);
            AddIf(null != ExternalSubnet ? (Carbon.Json.JsonNode) new Carbon.Json.JsonString(ExternalSubnet) : null, "external_subnet", container.Add);
            if (null != HttpProxyList)
            {
                var __w = new Carbon.Json.XNodeArray();
                foreach (var __x in HttpProxyList)
                {
                    AddIf(__x?.ToJson(null), __w.Add);
                }
                container.Add("http_proxy_list", __w);
            }
            if (null != HttpProxyWhitelist)
            {
                var __r = new Carbon.Json.XNodeArray();
                foreach (var __s in HttpProxyWhitelist)
                {
                    AddIf(__s?.ToJson(null), __r.Add);
                }
                container.Add("http_proxy_whitelist", __r);
            }
            AddIf(null != InternalSubnet ? (Carbon.Json.JsonNode) new Carbon.Json.JsonString(InternalSubnet) : null, "internal_subnet", container.Add);
            AddIf(null != MasqueradingIp ? (Carbon.Json.JsonNode) new Carbon.Json.JsonString(MasqueradingIp) : null, "masquerading_ip", container.Add);
            AddIf(null != MasqueradingPort ? (Carbon.Json.JsonNode) new Carbon.Json.JsonNumber((int)MasqueradingPort) : null, "masquerading_port", container.Add);
            if (null != NameServerIpList)
            {
                var __m = new Carbon.Json.XNodeArray();
                foreach (var __n in NameServerIpList)
                {
                    AddIf(null != __n ? (Carbon.Json.JsonNode) new Carbon.Json.JsonString(__n) : null, __m.Add);
                }
                container.Add("name_server_ip_list", __m);
            }
            if (null != NfsSubnetWhitelist)
            {
                var __h = new Carbon.Json.XNodeArray();
                foreach (var __i in NfsSubnetWhitelist)
                {
                    AddIf(null != __i ? (Carbon.Json.JsonNode) new Carbon.Json.JsonString(__i) : null, __h.Add);
                }
                container.Add("nfs_subnet_whitelist", __h);
            }
            if (null != NtpServerIpList)
            {
                var __c = new Carbon.Json.XNodeArray();
                foreach (var __d in NtpServerIpList)
                {
                    AddIf(null != __d ? (Carbon.Json.JsonNode) new Carbon.Json.JsonString(__d) : null, __c.Add);
                }
                container.Add("ntp_server_ip_list", __c);
            }
            AddIf(null != SmtpServer ? (Carbon.Json.JsonNode)SmtpServer.ToJson(null) : null, "smtp_server", container.Add);
            AfterToJson(ref container);
            return(container);
        }
コード例 #8
0
ファイル: AjaxLoader.cs プロジェクト: AutoCSer/AutoCSer
 protected void loadView(AutoCSer.WebView.View view, AutoCSer.WebView.AjaxMethodInfo ajaxInfo)
 {
     DomainServer.LoadAjax(Socket, view);
 }
コード例 #9
0
ファイル: AjaxLoader.cs プロジェクト: AutoCSer/AutoCSer
 protected void loadView <viewType>(viewType view, AutoCSer.WebView.AjaxMethodInfo ajaxInfo)
     where viewType : AutoCSer.WebView.View <viewType>
 {
     DomainServer.LoadAjax <viewType>(Socket, view);
 }
コード例 #10
0
ファイル: AjaxLoader.cs プロジェクト: AutoCSer/AutoCSer
 protected void loadView(AutoCSer.WebView.View view, AutoCSer.WebView.AjaxMethodInfo ajaxInfo, bool isAsynchronous, bool isAwaitMethod)
 {
     view.SetAsynchronousAwaitMethod(isAsynchronous, isAwaitMethod);
     DomainServer.LoadAjax(Socket, view);
 }
コード例 #11
0
ファイル: Usr.cs プロジェクト: cmxcol/sinco_q
        private bool AuthUsrDomain(String domainName, String Path_LDAP)
        {
            IDomainServer domainServer = new DomainServer(domainName, Path_LDAP);

            return(domainServer.IsAuthenticated(usr.CemexId, PassWord));
        }