• Как в .net core 3.1 SignalR настроить Hub так что бы обращаться к полю, а не одному емейлу?

    krakoss
    @krakoss
    React + C# + PostgreSQL
    предложу следующую реализацию
    вместо UserId - можно получить любые данные из таблицы dbo.users
    // это в Hub
    // Получение UserId используя string email = HttpContext.Current.Request.Cookies["ep"]["e"]
            public string NameUserId()
            {
                if (HttpContext.Current != null && HttpContext.Current.Request.Cookies["ep"] != null)
                {
                    string email = HttpContext.Current.Request.Cookies["ep"]["e"];
                    idUser = UsersDAL.GetUserByEmail(email).Id.ToString();
                }
                return idUser;
            }
    // это public class UsersDAL : BaseDataAccess 
    public static User GetUserByEmail(string email)
            {
                User result = null;
                const string query = @"select * from dbo.users where email=@Email and deleted=false";
                using (var connection = new NpgsqlConnection(connStr))
                {
                    connection.Open();
                    if (connection.State == System.Data.ConnectionState.Open)
                    {
                        using (var command = new NpgsqlCommand(query, connection))
                        {
                            command.Parameters.AddWithValue("Email", email);
    
                            try
                            {
                                var reader = command.ExecuteReader();
                                if (reader.Read())
                                    result = ReadUserInfo(reader);
                                reader.Close();
                            }
                            catch (Exception ex)
                            {
                                string methodName = MethodBase.GetCurrentMethod().Name;
                                throw new Exception("in UsersDAL." + methodName + "(): " + ex);
                            }
                            finally
                            {
                                connection.Close();
                            }
                        }
                    }
                    else
                    {
                        // conn Open to SQLite DB
                    }
                }
    
                return result;
            }
    Ответ написан
    Комментировать