Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

Dmitry

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ForposT_ForeveR
Консольное приложение. Обработка аргументов командной строки .
Обычно это выглядит так:
static int Main (string[] args)
{
  ...
  foreach (string arg in args)
  {
     ... что-то делаем
  }
  ...
}
 

Всего записей: 81 | Зарегистр. 24-09-2003 | Отправлено: 21:13 12-02-2014
Dauren111



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всеи привет! Есть вопрос... можно ли при загрузке страницы ASP.NET иметь доступ к файлоой системе... нужно проанализировать текстовый файл и на основе его провести аутентификацию и авторизацию...
Заранее спасибо!

Всего записей: 182 | Зарегистр. 05-01-2006 | Отправлено: 20:11 01-03-2014
mxm1975



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
можно ли при загрузке страницы ASP.NET иметь доступ к файлоой системе

 
можно! Начни отсюда:
http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx
 

Цитата:
на основе его провести аутентификацию и авторизацию

http://www.asp.net/web-forms
http://www.asp.net/web-forms/overview/security
http://www.asp.net/mvc
http://www.asp.net/mvc/overview/security

Всего записей: 279 | Зарегистр. 31-07-2002 | Отправлено: 05:37 02-03-2014
Dauren111



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
можно! Начни отсюда:
http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx

я имею ввиду на клиенте

Всего записей: 182 | Зарегистр. 05-01-2006 | Отправлено: 13:15 02-03-2014
DrakonHaSh



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dauren111
странные у вас запросы
из очевидных соображений безопасности подобное не реализуемо не одним браузером. [хотя, теоретическое можно такое сделать в ie через activex или еще намного намного намного более теоретически на java (просто так точно нельзя)]
 
короче отказывайтесь от своей идеи она не вписывается в технологию.

Всего записей: 2076 | Зарегистр. 08-01-2008 | Отправлено: 15:19 02-03-2014
Dauren111



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А можно тогда так ... сделать кнопку Идентификация и скрытое поле FileUpload... а ява скриптом как-то переопределить путь(везде он одинаковый C:\Sn)... и по нажатию делать аплоуд на сервак и так далее
Реализуемо?

Всего записей: 182 | Зарегистр. 05-01-2006 | Отправлено: 17:50 02-03-2014 | Исправлено: Dauren111, 17:50 02-03-2014
DrakonHaSh



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dauren111
нет
только если пользователь сам вручную выберет файл

Всего записей: 2076 | Зарегистр. 08-01-2008 | Отправлено: 18:40 02-03-2014
Dauren111



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
только если пользователь сам вручную выберет файл

((((.... как быть тада, существующая система в компании использует имеено эти файлы для аутентификации...хотелось просто встроится во всё это... мож чё посоветуете...

Всего записей: 182 | Зарегистр. 05-01-2006 | Отправлено: 19:05 02-03-2014
DrakonHaSh



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dauren111
на странице аутентификации сделать <input type="file" ...> и указать пользователю, что туда необходимо выбрать такой-то файл - иначе с доступом к файлам с клиентской стороны никак. после аутентификации хранить факт авторизации в сессии или еще как нибудь. правда с таким подходом юзеры легко могут додуматься копировать эти файлы себе на флешку...

Всего записей: 2076 | Зарегистр. 08-01-2008 | Отправлено: 19:15 02-03-2014
Dauren111



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
правда с таким подходом юзеры легко могут додуматься копировать эти файлы себе на флешку...

вот именно что этот файл идентифийирует как раз рабочее место... придётся с айпишником походу работать...

Всего записей: 182 | Зарегистр. 05-01-2006 | Отправлено: 22:21 02-03-2014
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dauren111

Цитата:
придётся с айпишником походу работать...

Или с именем компьютера или использоать login name с проверкой на одномоментное подключение одинаковых если требуется.

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:42 04-03-2014
WingfirE

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можете подсказать какое условие нужно указать, чтобы возвращалось нужное значение, а не первое попавшееся.
В конкретном примере нужно значение JPG, а возвращается первое PSD

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            byte[] content = File.ReadAllBytes(@"D:\error.jpg");
            Data Newdata = new Data();
            Newdata.Format(content);
            Console.ReadLine();
        }
 
    }
 
 
    public class Data
    {
        public byte[] bytes;
        public string name;
        List<Data> formats = new List<Data>();
 
        public string Format(byte[] content)
        {
            formats.Add(new Data() { name = "PNG", bytes = new byte[] { 137, 80, 78, 71, 13, 10, 26, 10 } });
            formats.Add(new Data() { name = "ACCDB", bytes = new byte[] { 0, 1, 0, 0, 83, 116, 97, 110, 100, 97, 114, 100, 32, 65, 67, 69, 32, 68, 66 } });
            formats.Add(new Data() { name = "MDB", bytes = new byte[] { 0, 1, 0, 0, 83, 116, 97, 110, 100, 97, 114, 100, 32, 74, 101, 116, 32, 68, 66 } });
            formats.Add(new Data() { name = "IMG", bytes = new byte[] { 0, 1, 0, 8, 0, 1, 0, 1, 1 } });
            formats.Add(new Data() { name = "MDF", bytes = new byte[] { 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 2, 0, 1 } });
            formats.Add(new Data() { name = "PIC", bytes = new byte[] { 1, 0, 0, 0, 1 } });
            formats.Add(new Data() { name = "MDF", bytes = new byte[] { 1, 15, 0, 0 } });
            formats.Add(new Data() { name = "XLS", bytes = new byte[] { 9, 8, 16, 0, 0, 6, 5, 0 } });
            formats.Add(new Data() { name = "DOC", bytes = new byte[] { 13, 68, 79, 67 } });
            formats.Add(new Data() { name = "PPT", bytes = new byte[] { 15, 0, 232, 8 } });
            formats.Add(new Data() { name = "PDF", bytes = new byte[] { 37, 80, 68, 70 } });
            formats.Add(new Data() { name = "7Z", bytes = new byte[] { 55, 122, 188, 175, 39, 28 } });
            formats.Add(new Data() { name = "PSD", bytes = new byte[] { 56, 66, 80, 83 } });
            formats.Add(new Data() { name = "JPG", bytes = new byte[] { 255, 216, 255, 224 } });
            return formats.Where(x => content.SequenceEqual(x.bytes))
              .Select(x => x.name)
              .FirstOrDefault();
         
           string extension = "";
           foreach (Data format in formats)
                    {
                           for (int i = 0; i < format.bytes.Length; i++)
                           {
                     
                    if (format.bytes[i] == content[i])
                    {
                        continue;
                     
                    }
                    else
                     
                    if (format.bytes[i] != content[i])
                    {
                       Console.WriteLine("Сравниваемые байты не равны");
                       
                    }
 
                     
               }
 
                extension = format.name;
               Console.WriteLine(extension);
                    }
           
           return extension;
           
       }
 
    }
}

Всего записей: 214 | Зарегистр. 17-03-2012 | Отправлено: 22:27 07-03-2014
xorvrn



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WingfirE код примера вообще неверен.
0) Список сигнатур будет заполняться при каждом вызове метода. Это плохо.
1) Все, что идет после return formats.Where(x => content.SequenceEqual(x.bytes)).Select(x => x.name).FirstOrDefault();
выполняться не будет.
2) SequenceEqual сработает только при одинаковых объектах. А ты пытаешься сравнить файл (сигнатура + содержимое) с только сигнатурой, естественно это не одно и то же.
3) Условие if (format.bytes[i] == content[i]) {continue; }  
лишнее, достаточно второго условия. Ну и хорошо бы проверять, что длинна контента больше или равна длине сигнатуры.
 

Код:
using System;
using System.Collections.Generic;
using System.IO;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void Main()
        {
            byte[] content = File.ReadAllBytes(@"Z:\error.png"); // может быть опасным при попытке открыть большой файл. ЛУчше сделать считывание начала файла
            Console.WriteLine(Data.Format(content));
            Console.ReadLine();
        }
    }
 
    struct Signature
    {
        public string Name;
        public byte[] Bytes;
    }
 
    public static class Data
    {
        private static readonly List<Signature> Formats = new List<Signature>
        {
            new Signature {Name = "PNG", Bytes = new byte[] {137, 80, 78, 71, 13, 10, 26, 10}},
            (new Signature {Name = "ACCDB", Bytes = new byte[] {0, 1, 0, 0, 83, 116, 97, 110, 100, 97, 114, 100, 32, 65, 67, 69, 32, 68, 66}}),
            (new Signature {Name = "MDB", Bytes = new byte[] {0, 1, 0, 0, 83, 116, 97, 110, 100, 97, 114, 100, 32, 74, 101, 116, 32, 68, 66}}),
            (new Signature {Name = "IMG", Bytes = new byte[] {0, 1, 0, 8, 0, 1, 0, 1, 1}}),
            (new Signature {Name = "MDF", Bytes = new byte[] {0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 2, 0, 1}}),
            (new Signature {Name = "PIC", Bytes = new byte[] {1, 0, 0, 0, 1}}),
            (new Signature {Name = "MDF", Bytes = new byte[] {1, 15, 0, 0}}),
            (new Signature {Name = "XLS", Bytes = new byte[] {9, 8, 16, 0, 0, 6, 5, 0}}),
            (new Signature {Name = "DOC", Bytes = new byte[] {13, 68, 79, 67}}),
            (new Signature {Name = "PPT", Bytes = new byte[] {15, 0, 232, 8}}),
            (new Signature {Name = "PDF", Bytes = new byte[] {37, 80, 68, 70}}),
            (new Signature {Name = "7Z", Bytes = new byte[] {55, 122, 188, 175, 39, 28}}),
            (new Signature {Name = "PSD", Bytes = new byte[] {56, 66, 80, 83}}),
            (new Signature {Name = "JPG", Bytes = new byte[] {255, 216, 255, 224}}),
        };
 
        public static string Format(byte[] content)
        {
            if (content == null || content.Length == 0) //можно поставить минимальную длинну сигнатуры
            {
                return "Пустой файл";
            }
            foreach (var signature in Formats)
            {
                if (signature.Bytes.Length > content.Length)
                {
                    continue;
                }
                int i;
                for (i = 0; i < signature.Bytes.Length; i++)
                {
                    if (content[i] != signature.Bytes[i])
                    {
                        break;
                    }
                }
                if (i == signature.Bytes.Length)
                {
                    return signature.Name;
                }
            }
            return "Неизвестный тип файла";
        }
    }
}


Всего записей: 14 | Зарегистр. 20-08-2009 | Отправлено: 02:12 10-03-2014
kayoto



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://dc.ru-board.com/details.php?id=85399
Книга Эндрю Троелсена: Программирование на C# 5.0 и платформа NET 4.5 + приложения к книге.
Забирайте кому надо )

Всего записей: 107 | Зарегистр. 03-05-2010 | Отправлено: 03:39 11-03-2014
WingfirE

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kayoto
А формат книги какой?

Всего записей: 214 | Зарегистр. 17-03-2012 | Отправлено: 00:46 12-03-2014
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
kayoto
WingfirE
Для книг отдельная тема есть - здесь офтоп

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:08 12-03-2014
WingfirE

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xorvrn
Спасибо за помощь

Всего записей: 214 | Зарегистр. 17-03-2012 | Отправлено: 22:23 13-03-2014
WingfirE

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Условие выполняется один раз в foeach

Код:
if (Const = (Views & Bases) == Views)
{                                                                                      
if (Status == false)
{
//
}
if (Status == false)
break;
Status = true;
}
else
{
Status = false;
//
}

Всего записей: 214 | Зарегистр. 17-03-2012 | Отправлено: 15:47 13-04-2014
mxm1975



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
и где тут foreach?

Всего записей: 279 | Зарегистр. 31-07-2002 | Отправлено: 17:05 13-04-2014
WingfirE

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
и где тут foreach?  

Вот здесь

Код:
bool Const;
foreach(var Step in List)
{
var Bases =Step.Bases;
if (Const = (Views & Bases) == Views)
{                                                                                      
if (Status == false)
{
//
}
if (Status == false)
break;
Status = true;
}
else
{
Status = false;
//
}

Всего записей: 214 | Зарегистр. 17-03-2012 | Отправлено: 18:59 13-04-2014 | Исправлено: WingfirE, 18:59 13-04-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru