Пример #1
0
        /// <summary>
        /// Do parameter validation.
        /// </summary>
        /// <param name="parameters"></param>
        /// <param name="unresolvedPropertyNames"></param>
        /// <param name="errors"></param>
        protected override void BeforeExecute(
            JsonToDbParameters parameters,
            HashSet <string> unresolvedPropertyNames,
            ErrorDetailList errors)
        {
            UsernamePassword up = parameters.UsernamePassword;

            if (up.WindowsAuthentication)
            {
                if (up.Password != null || up.UserName != null)
                {
                    errors.AddError("UsernamePassword", "You can specify either WindowsAuthentication OR Username/Password.");
                }
            }
            else // NO Windows Authentication ==> Username AND Password required
            {
                if (up.UserName == null)
                {
                    errors.AddError("UsernamePassword", "You must specify a Username.");
                }
                if (up.Password == null)
                {
                    errors.AddError("Password", "You must specify a Password.");
                }
            }

            //if (errors.HasErrors()) return;
            // Command will NOT be executed when errors contains messages
        }
Пример #2
0
        public string GetToken(UsernamePassword usernamePassword)
        {
            var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["SymmetricSecurityKey"]));

            var user = new UserRepository(MonilyzerContext).GetUser(usernamePassword.Username, usernamePassword.Password);

            var claims = new List <Claim> {
                new Claim(ClaimTypes.Name, user.Username),
                new Claim(JwtRegisteredClaimNames.Email, user.Email),
                new Claim("DisplayName", user.Displayname)
            };

            foreach (var role in user.UserRoles)
            {
                claims.Add(new Claim(ClaimTypes.Role, role?.RoleName));
            }

            var token = new JwtSecurityToken(
                issuer: "monilyzer.api",
                audience: "monilyzer.api clients",
                claims: claims.ToArray(),
                notBefore: DateTime.Now,
                expires: DateTime.Now.AddHours(4),
                signingCredentials: new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256)
                );

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Пример #3
0
 private string AppendUsernamePassword(string connectionString, UsernamePassword usernamePassword)
 {
     connectionString = connectionString.Trim();
     if (!connectionString.EndsWith(';'))
     {
         connectionString += ";";
     }
     return(connectionString + $"User Id={usernamePassword.Username};Password={usernamePassword.Password}");
 }
        /// <summary>
        /// A fully featured upload-event handler
        /// </summary>
        protected virtual UploadHandlerReturnVal UploadHandler(TraceListenerUploadableBase sender, string logTitle,
                                                               string logDetails, string uploadToWithoutPageNumber, List <LogEntry> linksToLog, bool openInBrowser,
                                                               bool addToWatchlist, string username, string logHeader, string editSummary,
                                                               string logSummaryEditSummary, Plugin.IAutoWikiBrowser awb,
                                                               UsernamePassword loginDetails)
        {
            UploadHandlerReturnVal retval = new UploadHandlerReturnVal {
                Success = false
            };

            if (StartingUpload(sender))
            {
                string pageName = uploadToWithoutPageNumber + " " + sender.TraceStatus.PageNumber;
                UploadingPleaseWaitForm waitForm = new UploadingPleaseWaitForm();
                LogUploader             uploader = new LogUploader(awb.TheSession.Editor);

                waitForm.Show();

                try
                {
                    uploader.LogIn(loginDetails);
                    Application.DoEvents();

                    retval.PageRetVals = uploader.LogIt(sender.TraceStatus.LogUpload, logTitle, logDetails, pageName, linksToLog,
                                                        sender.TraceStatus.PageNumber, sender.TraceStatus.StartDate, openInBrowser,
                                                        addToWatchlist, username, "{{log|name=" + uploadToWithoutPageNumber + "|page=" +
                                                        sender.TraceStatus.PageNumber + "}}" + Environment.NewLine + logHeader,
                                                        false, editSummary, logSummaryEditSummary, ApplicationName, true, awb);

                    retval.Success = true;
                }
                catch (Exception ex)
                {
                    ErrorHandler.Handle(ex);

                    retval.Success = false;
                }
                finally
                {
                    if (retval.Success)
                    {
                        sender.WriteCommentAndNewLine("Log uploaded to " + pageName);
                    }
                    else
                    {
                        sender.WriteCommentAndNewLine(
                            "LOG UPLOADING FAILED. Please manually upload this section to " + pageName);
                    }
                }

                waitForm.Dispose();
                FinishedUpload();
            }
            return(retval);
        }
Пример #5
0
        /// <summary>
        /// A fully featured upload-event handler
        /// </summary>
        protected virtual UploadHandlerReturnVal UploadHandler(TraceListenerUploadableBase Sender, string LogTitle,
                                                               string LogDetails, string UploadToWithoutPageNumber, List <LogEntry> LinksToLog, bool OpenInBrowser,
                                                               bool AddToWatchlist, string Username, string LogHeader, string EditSummary,
                                                               string LogSummaryEditSummary, WikiFunctions.Plugin.IAutoWikiBrowser AWB,
                                                               UsernamePassword LoginDetails)
        {
            UploadHandlerReturnVal retval = new UploadHandlerReturnVal();

            retval.Success = false;

            if (StartingUpload(Sender))
            {
                string pageName = UploadToWithoutPageNumber + " " + Sender.TraceStatus.PageNumber.ToString();
                UploadingPleaseWaitForm waitForm = new UploadingPleaseWaitForm();
                LogUploader             uploader = new LogUploader();

                waitForm.Show();

                try
                {
                    uploader.LogIn(LoginDetails);
                    Application.DoEvents();

                    retval.PageRetVals = uploader.LogIt(Sender.TraceStatus.LogUpload, LogTitle, LogDetails, pageName, LinksToLog,
                                                        Sender.TraceStatus.PageNumber, Sender.TraceStatus.StartDate, OpenInBrowser,
                                                        AddToWatchlist, Username, "{{log|name=" + UploadToWithoutPageNumber + "|page=" +
                                                        Sender.TraceStatus.PageNumber.ToString() + "}}" + System.Environment.NewLine + LogHeader,
                                                        false, EditSummary, LogSummaryEditSummary, ApplicationName, true, AWB);

                    retval.Success = true;
                }
                catch (Exception ex)
                {
                    ErrorHandler.Handle(ex);

                    retval.Success = false;
                }
                finally
                {
                    if (retval.Success)
                    {
                        Sender.WriteCommentAndNewLine("Log uploaded to " + pageName);
                    }
                    else
                    {
                        Sender.WriteCommentAndNewLine(
                            "LOG UPLOADING FAILED. Please manually upload this section to " + pageName);
                    }
                }

                waitForm.Dispose();
                FinishedUpload();
            }
            return(retval);
        }
Пример #6
0
        public virtual IActionResult Siginout([FromBody] UsernamePassword usernamePassword)
        {
            //TODO: Uncomment the next line to return response 204 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(204);

            //TODO: Uncomment the next line to return response 400 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(400, default(Error));


            throw new NotImplementedException();
        }
Пример #7
0
        public async Task <IHttpActionResult> PostForLogin(JObject usrpwdata)
        {
            List <System.Net.Http.Headers.CookieHeaderValue> x = Request.Headers.GetCookies("mymy").ToList();

            if (x.Count == 1)
            {
                //If login cookie exists:Return error to indicate that user already logged in
                return(BadRequest("ท่านได้เข้าสู่ระบบอยู่แล้ว"));
            }
            UsernamePassword data = new UsernamePassword();

            data.username = usrpwdata["username"].ToString();
            data.password = usrpwdata["password"].ToString();

            if (data.username == "" && data.password == "")
            {
                return(BadRequest("กรุณาใส่ชื่อผู้ใช้และรหัสผ่านที่ต้องการเข้าสู่ระบบ"));
            }
            else if (data.username == "")
            {
                return(BadRequest("กรุณาใส่ชื่อผู้ใช้งานที่ต้องการเข้าสู่ระบบ"));
            }
            else if (data.password == "")
            {
                return(BadRequest("กรุณาใส่รหัสผ่านที่ใช้ในการเข้าสู่ระบบ"));
            }
            oUsers context = new oUsers();

            data.username = data.username.ToLower();
            object result = await context.SelectUser(data.username);

            //Check whether login is success?
            if (result.GetType().ToString() != "System.String")
            {
                User_information_with_privilege_information u = (User_information_with_privilege_information)result;
                string oldpassword = data.password;
                data.password = u.information.GetPassword();
                if (data.isMatchPassword(oldpassword))
                {
                    return(Ok(u));
                }
                else
                {
                    return(BadRequest("ชื่อผู้ใช้งานหรือรหัสผ่านไม่ถูกต้อง"));
                }
            }
            else
            {
                return(BadRequest("ชื่อผู้ใช้งานหรือรหัสผ่านไม่ถูกต้อง"));
            }
        }
        private string Encode(UsernamePassword item)
        {
            StringBuilder sb = new StringBuilder();

            foreach (char cur in item.UserName)
            {
                if (cur != escape && cur != sep)
                {
                    sb.Append(cur);
                }
                else
                {
                    if (cur == escape)
                    {
                        sb.Append(escape);
                        sb.Append(escape);
                    }
                    else
                    {
                        sb.Append(escape);
                        sb.Append(sep);
                    }
                }
            }
            sb.Append(sep); //separates user from pass
            foreach (char cur in item.Password)
            {
                if (cur != escape && cur != sep)
                {
                    sb.Append(cur);
                }
                else
                {
                    if (cur == escape)
                    {
                        sb.Append(escape);
                        sb.Append(escape);
                    }
                    else
                    {
                        sb.Append(escape);
                        sb.Append(sep);
                    }
                }
            }


            return(sb.ToString());
        }
Пример #9
0
        /// <summary>
        ///
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="usernamePassword"></param>
        /// <returns>ApiResponse of Object(void)</returns>
        public Org.OpenAPITools.Client.ApiResponse <Object> SiginoutWithHttpInfo(UsernamePassword usernamePassword)
        {
            // verify the required parameter 'usernamePassword' is set
            if (usernamePassword == null)
            {
                throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'usernamePassword' when calling DefaultApi->Siginout");
            }

            Org.OpenAPITools.Client.RequestOptions requestOptions = new Org.OpenAPITools.Client.RequestOptions();

            String[] @contentTypes = new String[] {
                "application/json"
            };

            // to determine the Accept header
            String[] @accepts = new String[] {
                "application/json"
            };

            foreach (var contentType in @contentTypes)
            {
                requestOptions.HeaderParameters.Add("Content-Type", contentType);
            }

            foreach (var accept in @accepts)
            {
                requestOptions.HeaderParameters.Add("Accept", accept);
            }

            requestOptions.Data = usernamePassword;


            // make the HTTP request

            var response = this.Client.Post <Object>("/signout", requestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception exception = this.ExceptionFactory("Siginout", response);
                if (exception != null)
                {
                    throw exception;
                }
            }

            return(response);
        }
Пример #10
0
        public async Task <IHttpActionResult> PostForCreateNewAdmin(JObject data)
        {
            const string             chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            RNGCryptoServiceProvider gen   = new RNGCryptoServiceProvider();

            byte[] num = new byte[8];

            //GENERATE PASSWORD 8 CHARS
            string password = "";

            gen.GetBytes(num);
            for (int j = 0; j < 8; j++)
            {
                num[j]   %= (byte)chars.Length;
                password += chars[num[j]];
            }
            //=========================
            string emaillower = data["email"].ToString();

            emaillower = emaillower.ToLower();
            UsernamePassword u = new UsernamePassword(emaillower, password);

            datacontext.admin_creator_id = Convert.ToInt32(data["user_id"]);
            datacontext.username         = emaillower;
            datacontext.password         = u.password;
            datacontext.t_name           = data["t_name"].ToString();

            object result = await datacontext.InsertWithSelect();

            if (result.GetType().ToString() != "System.String")
            {
                object sendresult = await MailingUtils.sendUsernamePasswordMailForAdmin(emaillower, password, datacontext.t_name);

                if (sendresult == null)
                {
                    return(Ok(result));
                }
                else
                {
                    return(InternalServerError((Exception)sendresult));
                }
            }
            else
            {
                return(BadRequest(result.ToString()));
            }
        }
Пример #11
0
 public bool AddCredential(IUserIdentity user, Security.ICredential credential)
 {
     if (user != null && credential != null)
     {
         UserPasswordCredential up = credential as UserPasswordCredential; //this is the only type of credential we can use
         if (up != null)
         {
             UsernamePassword hist = up.ToHistoryPair();                                      //this is what we store in history
             if (UserPasswordProviderFactory.Instance.ComplexityChecker.IsValid(up.password)) //validate it meets complexity rules
             {
                 //get the existing credential this will replace, or this may be all together new
                 PersistedCredential curCred = GetPersisted(user.Uid, hist.UserName);
                 if (curCred != null)
                 {
                     PasswordHistory <UsernamePassword> history = GetHistory(user.Uid, hist.UserName);
                     if (!history.MatchesHistory(UsernamePassword.Matches, hist)) //can't add this since it's matching a current history in range
                     {
                         history.Add(hist);
                         //delete and set the new password
                         if (ReplaceCredential(user.Uid, hist.UserName, hist.Password))
                         {
                             this.historyProvider.Update(user.Uid, history);
                             return(true);
                         }
                     }
                 }
                 else //no existing cred, so this is a new one - but already meets complexity rule
                 {
                     PasswordHistory <UsernamePassword> history = GetHistory(user.Uid, hist.UserName);
                     if (!history.MatchesHistory(UsernamePassword.Matches, hist)) //can't add this since it's matching a current history in range
                     {
                         history.Add(hist);
                         //delete and set the new password
                         if (this.storeProvider.AddCredential(user.Uid, this, hist.UserName, hist.Password)) //the hist is already salted
                         {
                             this.historyProvider.Update(user.Uid, history);                                 //update the history
                             return(true);
                         }
                     }
                 }
             } //inside this level we have a valid password by complexity
         }
     }
     return(false);
 }
Пример #12
0
 public bool ReplaceCredential(IUserIdentity user, Security.ICredential existing, Security.ICredential proposed)
 {
     if (user != null && existing != null && proposed != null)
     {
         UserPasswordCredential toRemove = existing as UserPasswordCredential; //this is the only type of credential we can use
         UserPasswordCredential toAdd    = proposed as UserPasswordCredential; //this is the only type of credential we can use
         if (toRemove != null && toAdd != null)
         {
             PersistedCredential cred = GetPersisted(user.Uid, toRemove.UserName.ToLowerInvariant());
             if (cred != null && toRemove.Matches(cred)) //has to be currently valid to do a replace
             {
                 UsernamePassword up = toAdd.ToHistoryPair();
                 if (toRemove.UserName.ToLowerInvariant().Equals(toAdd.UserName.ToLowerInvariant()))
                 {
                     PasswordHistory <UsernamePassword> hist = GetHistory(user.Uid, up.UserName);
                     if (!hist.MatchesHistory(UsernamePassword.Matches, up)) //check for historic collision
                     {
                         if (ReplaceCredential(user.Uid, up.UserName, up.Password))
                         {
                             hist.Add(up);
                             this.historyProvider.Update(user.Uid, hist);
                             return(true);
                         }
                     }
                 }
                 else //different usernames being used
                 {
                     if (this.storeProvider.DeleteCredential(user.Uid, this, toRemove.UserName.ToLowerInvariant()))
                     {
                         this.historyProvider.Delete(user.Uid); //TODO -- this we need to fix by userId,type
                         if (this.storeProvider.AddCredential(user.Uid, this, up.UserName, up.Password))
                         {
                             PasswordHistory <UsernamePassword> hist = GetHistory(user.Uid, up.UserName);
                             this.historyProvider.Update(user.Uid, hist);
                             return(true);
                         }
                     }
                 }
             }
         }
     }
     return(false);
 }
Пример #13
0
        public string GetToken([FromBody] UsernamePassword uspas)
        {
            var temp = uspas;

            User d = context.Users.FirstOrDefault(item => item.Username == uspas.Username);

            if (d != null && d.Password == uspas.Password)
            {
                Tokens token = TokensGenerateVer.TK();

                this.context.Tokens.Add(token);
                this.context.SaveChanges();

                return(token.text);
            }

            else
            {
                return(null);
            }
        }
Пример #14
0
        public async Task <List <ApiResponse> > RegisterPassword(string username, string plainPassword)
        {
            // we need to use the password service for generating the password
            IHashService hashService = new HashService();

            // get a password model with the HASHED plain password
            Password password = hashService.GenerateHashedPassword(plainPassword);

            // create tayo ng POST Model para i-send ung username at password
            UsernamePassword userPassword = new UsernamePassword()
            {
                PsUsername = username,
                UPassword  = password
            };

            string url = ApiUri.RegisterPassword.ToUrl();

            var response = await httpService.PostReadResponse
                           <IEnumerable <ApiResponse>, UsernamePassword> (url, userPassword);

            return(response.ToList());
        }
Пример #15
0
        public UserNamePasswordWindow(Cursor cursor) : base(cursor)
        {
            SelectedObject = new UsernamePassword();

            #region Create the OK button

            Button okButton = new Button(mCursor);

            okButton.Text   = "Ok";
            okButton.Click += OnOkClick;
            okButton.ScaleX = 5;

            this.AddWindow(okButton);

            #endregion

            #region Create the cancel button

            Button cancelButton = new Button(mCursor);

            cancelButton.Text   = "Cancel";
            cancelButton.Click += OnCancelClick;
            cancelButton.ScaleX = 5;

            this.AddWindow(cancelButton);

            #endregion

            GetUIElementForMember("UserName").ScaleX = 20;

            #region Adjust the Password textbox

            TextBox asTextBox = GetUIElementForMember("Password") as TextBox;
            asTextBox.ScaleX         = 20;
            asTextBox.HideCharacters = true;

            #endregion
        }
Пример #16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="usernamePassword"></param>
        /// <returns></returns>
        public void Siginout(UsernamePassword usernamePassword)
        {
            // verify the required parameter 'usernamePassword' is set
            if (usernamePassword == null)
            {
                throw new ApiException(400, "Missing required parameter 'usernamePassword' when calling Siginout");
            }


            var path = "/signout";

            path = path.Replace("{format}", "json");

            var    queryParams  = new Dictionary <String, String>();
            var    headerParams = new Dictionary <String, String>();
            var    formParams   = new Dictionary <String, String>();
            var    fileParams   = new Dictionary <String, FileParameter>();
            String postBody     = null;

            postBody = ApiClient.Serialize(usernamePassword);                                     // http body (model) parameter

            // authentication setting, if any
            String[] authSettings = new String[] {  };

            // make the HTTP request
            IRestResponse response = (IRestResponse)ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings);

            if (((int)response.StatusCode) >= 400)
            {
                throw new ApiException((int)response.StatusCode, "Error calling Siginout: " + response.Content, response.Content);
            }
            else if (((int)response.StatusCode) == 0)
            {
                throw new ApiException((int)response.StatusCode, "Error calling Siginout: " + response.ErrorMessage, response.ErrorMessage);
            }

            return;
        }
Пример #17
0
 public virtual void Siginout(NancyContext context, UsernamePassword usernamePassword)
 {
     Siginout(usernamePassword);
 }
Пример #18
0
 /// <summary>
 ///
 /// </summary>
 /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="usernamePassword"></param>
 /// <returns></returns>
 public void Siginout(UsernamePassword usernamePassword)
 {
     SiginoutWithHttpInfo(usernamePassword);
 }
Пример #19
0
 public string Register([FromBody] UsernamePassword request)
 {
     HttpContext.Session.Set("active", new byte[] { 1 });
     return(GetUserActions()
            .Register(Guid.Parse(HttpContext.Session.Id), request.Username, request.Password));
 }
Пример #20
0
 /// <summary>
 ///
 /// </summary>
 /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="usernamePassword"></param>
 /// <returns>Task of void</returns>
 public async System.Threading.Tasks.Task SiginoutAsync(UsernamePassword usernamePassword)
 {
     await SiginoutAsyncWithHttpInfo(usernamePassword);
 }
Пример #21
0
 public string Post([FromBody] UsernamePassword usernamePassword)
 {
     return(new TokenRepository(MonilyzerContext, Configuration).GetToken(usernamePassword));
 }
Пример #22
0
 protected abstract void Siginout(UsernamePassword usernamePassword);