public async Task LoginAutoLoginFromHeadersInvalidEncoding() { ISettingsProvider settingsProvider = new pm.DefaultSettingProvider(Directory.GetCurrentDirectory()); LoginControllerSettings loginControllerSettings = settingsProvider.GetSettings <LoginControllerSettings>(nameof(LoginPlugin)); TestHttpRequest httpRequest = new TestHttpRequest(); TestHttpResponse httpResponse = new TestHttpResponse(); IPluginClassesService pluginServices = new pm.PluginServices(_testPluginLogin) as IPluginClassesService; TestHttpContext httpContext = new TestHttpContext(httpRequest, httpResponse); httpRequest.SetContext(httpContext); MockLoginProvider loginProvider = new MockLoginProvider(); MockClaimsProvider claimsProvider = new MockClaimsProvider(pluginServices); TestAuthenticationService authenticationService = new TestAuthenticationService(); RequestDelegate requestDelegate = async(context) => { await Task.Delay(0); }; httpRequest.Headers.Add(SharedPluginFeatures.Constants.HeaderAuthorizationName, "Basic blahblahblah"); LoginMiddleware login = new LoginMiddleware(requestDelegate, loginProvider, settingsProvider, claimsProvider); await login.Invoke(httpContext, authenticationService); Assert.AreEqual(400, httpContext.Response.StatusCode); Assert.IsFalse(authenticationService.SignInAsyncCalled); }
public async Task LoginAutoLoginFromHeadersInvalidUsernameAndPassword() { ISettingsProvider settingsProvider = new pm.DefaultSettingProvider(Directory.GetCurrentDirectory()); LoginControllerSettings loginControllerSettings = settingsProvider.GetSettings <LoginControllerSettings>(nameof(LoginPlugin)); TestHttpRequest httpRequest = new TestHttpRequest(); TestHttpResponse httpResponse = new TestHttpResponse(); IPluginClassesService pluginServices = new pm.PluginServices(_testPluginLogin) as IPluginClassesService; TestHttpContext httpContext = new TestHttpContext(httpRequest, httpResponse); httpRequest.SetContext(httpContext); MockLoginProvider loginProvider = new MockLoginProvider(); MockClaimsProvider claimsProvider = new MockClaimsProvider(pluginServices); TestAuthenticationService authenticationService = new TestAuthenticationService(); RequestDelegate requestDelegate = async(context) => { await Task.Delay(0); }; string encoded = Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes("Miley:Cyrus")); httpRequest.Headers.Add(SharedPluginFeatures.Constants.HeaderAuthorizationName, "Basic " + encoded); LoginMiddleware login = new LoginMiddleware(requestDelegate, loginProvider, settingsProvider, claimsProvider); await login.Invoke(httpContext, authenticationService); Assert.IsFalse(authenticationService.SignInAsyncCalled); }
public async Task LoginFromCookieValueCookieValidLoginUserFound() { ISettingsProvider settingsProvider = new pm.DefaultSettingProvider(Directory.GetCurrentDirectory()); LoginControllerSettings loginControllerSettings = settingsProvider.GetSettings <LoginControllerSettings>(nameof(LoginPlugin)); TestRequestCookieCollection cookies = new TestRequestCookieCollection(); cookies.AddCookie("RememberMe", Shared.Utilities.Encrypt("123", loginControllerSettings.EncryptionKey)); TestHttpRequest httpRequest = new TestHttpRequest(cookies); TestHttpResponse httpResponse = new TestHttpResponse(); IPluginClassesService pluginServices = new pm.PluginServices(_testPluginLogin) as IPluginClassesService; TestHttpContext httpContext = new TestHttpContext(httpRequest, httpResponse); httpRequest.SetContext(httpContext); MockLoginProvider loginProvider = new MockLoginProvider(); MockClaimsProvider claimsProvider = new MockClaimsProvider(pluginServices); TestAuthenticationService authenticationService = new TestAuthenticationService(); RequestDelegate requestDelegate = async(context) => { await Task.Delay(0); }; LoginMiddleware login = new LoginMiddleware(requestDelegate, loginProvider, settingsProvider, claimsProvider); await login.Invoke(httpContext, authenticationService); TestResponseCookies responseCookies = httpResponse.Cookies as TestResponseCookies; Assert.IsNotNull(responseCookies); Assert.IsTrue(authenticationService.SignInAsyncCalled); }
public JsonResult TryLogOut() { var id = HttpContext.LoginId(); if (id > 0) { LoginMiddleware.LogOutUser(id); } CookieUtils.Set(HttpContext, "login", null); return(new JsonResult(new { isLoggedOut = true })); }
public void LoginNullSettingsProviderValue() { IPluginClassesService pluginServices = new pm.PluginServices(_testPluginLogin) as IPluginClassesService; MockLoginProvider loginProvider = new MockLoginProvider(); MockClaimsProvider claimsProvider = new MockClaimsProvider(pluginServices); RequestDelegate requestDelegate = async(context) => { await Task.Delay(0); }; LoginMiddleware login = new LoginMiddleware(requestDelegate, loginProvider, null, claimsProvider); }
public void LoginNullLoginProviderValue() { IPluginClassesService pluginServices = new pm.PluginServices(_testPluginLogin) as IPluginClassesService; ISettingsProvider settingsProvider = new pm.DefaultSettingProvider(Directory.GetCurrentDirectory()); MockClaimsProvider claimsProvider = new MockClaimsProvider(pluginServices); RequestDelegate requestDelegate = async(context) => { await Task.Delay(0); }; LoginMiddleware login = new LoginMiddleware(requestDelegate, null, settingsProvider, claimsProvider); }
public void LoginNullRequestDelegateValue() { IPluginClassesService pluginServices = new pm.PluginServices(_testPluginLogin) as IPluginClassesService; MockLoginProvider loginProvider = new MockLoginProvider(); ISettingsProvider settingsProvider = new pm.DefaultSettingProvider(Directory.GetCurrentDirectory()); MockClaimsProvider claimsProvider = new MockClaimsProvider(pluginServices); LoginMiddleware login = new LoginMiddleware(null, loginProvider, settingsProvider, claimsProvider); }
public async Task LoginNullContextValue() { IPluginClassesService pluginServices = new pm.PluginServices(_testPluginLogin) as IPluginClassesService; MockLoginProvider loginProvider = new MockLoginProvider(); ISettingsProvider settingsProvider = new pm.DefaultSettingProvider(Directory.GetCurrentDirectory()); MockClaimsProvider claimsProvider = new MockClaimsProvider(pluginServices); TestAuthenticationService authenticationService = new TestAuthenticationService(); RequestDelegate requestDelegate = async(context) => { await Task.Delay(0); }; LoginMiddleware login = new LoginMiddleware(requestDelegate, loginProvider, settingsProvider, claimsProvider); await login.Invoke(null, authenticationService); }
public JsonResult TryLogin(string name, string password) { using (var c = new WebChat()) { var toLogin = c .Users .Where(u => u.Login.Equals(name) && BCrypt.Net.BCrypt.Verify(password, u.Password) ); if (toLogin.Count() != 1) { return(new JsonResult(new { isLogged = false })); } return(new JsonResult(new { isLogged = HttpContext.LoginId() == 0 && LoginMiddleware.LogUser(HttpContext, toLogin.Single().Id) })); } }
private static void SetClearingThread(int id) { new Thread(async() => { Thread.Sleep(2000); if (!LoginMiddleware.WebSockets.ContainsKey(id) || LoginMiddleware.WebSockets[id].State != WebSocketState.Open) { LoginMiddleware.LogOutUser(id); Console.WriteLine($"User {id} logged out."); var msg = JsonConvert.SerializeObject(new { id, type = "logout" }); foreach (var ws in LoginMiddleware.WebSockets) { await ws.Value.SendAsync(Encoding.UTF8.GetBytes(msg), WebSocketMessageType.Text, true, CancellationToken.None); } } }) { IsBackground = true }.Start(); }
public async void LoginNullAuthenticationValueOnInvoke() { TestRequestCookieCollection cookies = new TestRequestCookieCollection(); cookies.AddCookie("RememberMe", "1"); TestHttpRequest httpRequest = new TestHttpRequest(cookies); TestHttpResponse httpResponse = new TestHttpResponse(); IPluginClassesService pluginServices = new pm.PluginServices(_testPluginLogin) as IPluginClassesService; TestHttpContext httpContext = new TestHttpContext(httpRequest, httpResponse); MockLoginProvider loginProvider = new MockLoginProvider(); ISettingsProvider settingsProvider = new pm.DefaultSettingProvider(Directory.GetCurrentDirectory()); MockClaimsProvider claimsProvider = new MockClaimsProvider(pluginServices); RequestDelegate requestDelegate = async(context) => { await Task.Delay(0); }; LoginMiddleware login = new LoginMiddleware(requestDelegate, loginProvider, settingsProvider, claimsProvider); await login.Invoke(httpContext, null); }
public JsonResult TryRegister(string login, string password, string name, string email, string phone) { if (HttpContext.LoginId() == 0) { using (var c = new WebChat()) { var toLogin = c .Users .Where(u => u.Login.Equals(login)); if (toLogin.Count() != 0) { return(new JsonResult(new { isLogged = false })); } var user = new Users { CreationDate = DateTime.Now, Login = login, Password = BCrypt.Net.BCrypt.HashPassword(password), Nickname = name, Email = email, Phone = phone }; c.Users.Add(user); c.SaveChanges(); } using (var c = new WebChat()) { var user = c.Users.First(u => u.Login.Equals(login)); return(new JsonResult(new { isLogged = LoginMiddleware.LogUser(HttpContext, user.Id) })); } } return(new JsonResult(new { isLogged = false })); }