powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC vs WebForms
25 сообщений из 180, страница 7 из 8
MVC vs WebForms
    #37747464
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ппц, 6 страниц ни о чем
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747473
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонShSerge,

Допустим заинжектили картинку, с параметрами на удаление, когда эту картинку откроет юзер с правильными привелегиями, что будет?

<img src="admin.aspx?deleteuser=ShSerge" />ну вообще-то такую фичу и через пост можно замутить (на своем сайте слепить страницу, в которой сабмиттить форму в ифрейм), и дать ссылку.

чтоб такого не было, юзают хеш (см. урл ссылки "Выйти" на этом форуме)
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747488
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечну вообще-то такую фичу и через пост можно замутить (на своем сайте слепить страницу, в которой сабмиттить форму в ифрейм), и дать ссылку.


Ну вообще то у вас нет привилегий на удаление, и на ссылку никто никто не клацнет.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747491
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамони на ссылку никто никто не клацнет.если есть ссылка, то на нее вполне могут клацнуть, в том числе чуваки с привилегиями, что и требуется по замыслу.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747498
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечесли есть ссылка, то на нее вполне могут клацнуть, в том числе чуваки с привилегиями
А могут и нет, и куда вы ифрейм собрались запостить?
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747499
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oopss...,

>> .. рекомендую

Отличное, чтиво. Ознакомился и не поленился поехал - купил. Пасиб.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747515
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамони куда вы ифрейм собрались запостить?
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<script>
window.onload = function() {
	document.getElementById('f1').submit();
};
</script>
...
<form id="f1" action="http://yousite/admin.aspx" method="post" target="hdnFrm">
	<input type="hidden" name="deleteuser" value="ShSerge" />
</form>
<iframe name="hdnFrm" >


если чувак с правами откроет такой хтмл (жмякнет ссылку), то выполнит команду POST, и даже не заметит этого.


конечно, можно referer смотреть.
это лишь иллюстрация того, что просто одним постом не прикрыть лавочку.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747525
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

Типа, берёшь фидлер - и аля-улю. Скопировать пост или гет - нет проблем.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747527
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть, безопасностью занимаются не на этом (пост-гет) уровне.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747555
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

Не понял, как чуваку вы айфрейм подсуните?
Картинку то запостить на форуме, не проблема.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747566
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонНе понял, как чуваку вы айфрейм подсуните?я же говорю, для этого чувак должен кликнуть по ссылке и перейти на страницу, примерный код которой я привел выше.
понятное дело, этого может не произойти, но строить защиту на предположении "юзер не кликнет" - не совсем верно.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747570
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечно строить защиту на предположении "юзер не кликнет" - не совсем верно.

Имхо, обо всем нужно думать, меньше дыр, как результат.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747728
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSппц, 6 страниц ни о чем+100500
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747736
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANASanSYSппц, 6 страниц ни о чем+100500
Лично я для себя много полезного почерпнул.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747834
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge, резюмируйте, если не сложно. А я вот, кроме ссылки на книгу по javascript шаблонам и твоей на статью "Фабрика Web Client Software Factory", ролезного не заметил.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37747983
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAShSerge, резюмируйте, если не сложно. А я вот, кроме ссылки на книгу по javascript шаблонам и твоей на статью "Фабрика Web Client Software Factory", ролезного не заметил.

Если позволите я попробую.
--
http://www.google.ru/search?q=JavaScript.%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B.2011&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a]Стоян Стефанов | JavaScript. Шаблоны [2011]
--
Фабрика Web Client Software Factory
http://msdn.microsoft.com/ru-ru/magazine/cc163381.aspx
--
Безопасностью занимаются не на этом (пост-гет) уровне
--
Dart
http://www.dartlang.org/

Ajax-Pattern
Код: javascript
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.
var MYAPP = MYAPP || {
                ajax : function(url, callback, method, data, async){
                    var method = method || 'GET',
                    async =  typeof(async) === 'boolean' ? async : true;
                    xmlHttp = null;

                    if (window.XMLHttpRequest) {
                        xmlHttp = new XMLHttpRequest();
                    } else if (window.ActiveXObject) {
                        try {
                            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch(e) {
                            try {
                                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                            } catch(e) {
                                xmlHttp = null;
                            }
                        }
                    } else if (window.createRequest) {
                        try {
                            xmlHttp = window.createRequest();
                        } catch (e) {
                            xmlHttp = null
                        }
                    };

                    if(xmlHttp){
                        xmlHttp.open(method, url, async);
                        xmlHttp.onreadystatechange = function() {
                            if (this.readyState === 4 && callback) {
                                if(this.status === 200) {
                                    callback(this.responseText);
                                    //console.log(this.getAllResponseHeaders());
                                }
                            }
                        };
                        if(method === 'POST'){
                            xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
                            xmlHttp.setRequestHeader('Content-length', data.length);
                            xmlHttp.setRequestHeader('Connection', 'close');
                        }
                        xmlHttp.send(data);
                    }
                },
                sendAjax : function(){
                    var obj1 = {id: '1', value: 'value-1'},
                    obj2 = {id: '2', value: 'value-2'},
                    url = '/home/ajax?data=client',
                    data = 'data=' + encodeURIComponent(JSON.stringify([obj1, obj2])),
                    obj = document.getElementById('result');

                    MYAPP.ajax(url, function(data){
                        obj.innerHTML += data;
                    }, 'POST', data);

                    MYAPP.ajax(url, function(data){
                        obj.innerHTML += '< br />' + data;
                    });

                    MYAPP.ajax(url);
                }
            };



Ajax-Factory
Код: javascript
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.
var http = {};        
        http._factories = [
            function() { return new XMLHttpRequest(); },
            function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
            function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
        ];
        http._factory = null;
        http.newRequest = function () {
            if (http._factory != null) return http._factory();
            for (var i = 0; i < http._factories.length ; i++) {
                try {
                    var factory = http._factories[i];
                    var request = factory();
                    if (request != null) {
                        http._factory = factory;
                        return request;
                    }
                }
                catch (e) {
                    continue;
                }
            }
            http._factory = function () {
                throw new Error("Ky");
            };
            http._factory();
        };




F# HTTPListener
Код: c#
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.
namespace Simple
open System.Net
open System.Xml
open System.Xml.Linq
module HttpListener =    
    type msg =
    | Incr of string
    | Fetch of AsyncReplyChannel<string>

    let run (url:string,handler: (HttpListenerRequest -> HttpListenerResponse -> Async<unit>)) = 
        let listener = new HttpListener()
        listener.Prefixes.Add url
        listener.Start()
        let asynctask = Async.FromBeginEnd(listener.BeginGetContext,listener.EndGetContext)
        async {
            while true do 
                let! context = asynctask
                Async.Start (handler context.Request context.Response)
        } |> Async.Start 
        listener
    
    let counter =
        MailboxProcessor.Start(fun inbox ->
            let rec loop p =
                async { let! msg = inbox.Receive()
                        match msg with
                        | Incr(x) -> return! loop(p + x)
                        | Fetch(replyChannel) ->
                            replyChannel.Reply(p)
                            return! loop(p) }
            loop "\n")

    let up = run("http://*:80/Chat/", (fun req resp -> 
            async { // post format: http://server:80/Chat/it?post=message 
                let post = try req.QueryString.GetValues("post") |> Array.min with e -> "no comment\n"
                counter.Post(Incr (sprintf "<div class='chatroom'>%s</div>" post))
                let str = counter.PostAndReply(fun replyChannel -> Fetch replyChannel)
                let out = System.Text.Encoding.ASCII.GetBytes (sprintf "<div class='chatroom'>%s</div>" str)
                resp.OutputStream.Write(out,0,out.Length)
                resp.OutputStream.Close()
            }
        )) 

    up |> fun server -> printf "server.IsListening: %b\n" server.IsListening
    System.Console.Read () |> ignore




Система оповещений пользователей ASP.NET MVC
Код: c#
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.
// Controller
        [HttpPost]
        [NoCache]
        public int AddMessage(ChatForm frm)
        {
            if (string.IsNullOrEmpty(frm.ChatMessage) || !CurrSession.IsValidChat)
                return 0;

            string NickName = CurrSession.Nickname;
            int TypeID = 0;
            int CustomerID = 0;

            if (CurrSession.IsValidCustomer)
            {
                NickName = CurrSession.CustomerUserName;
                CustomerID = CurrSession.CustomerID;
                TypeID = 1;
            }

            cRep.AddMessage(frm.ChatMemberID, NickName, frm.ChatMessage, TypeID, CustomerID);

            return 1;
        }

        [NoCache]
        public ActionResult List(int mID)
        {
            if (!CurrSession.IsValidChat)
                return Content("");

            var data = new ChatMessagesView
            {
                MemberID = mID,
                SmilesList = cRep.GetSmiles(),
                MessagesList = cRep.GetChatMessages(mID, 30, CurrSession.ChatStartTime)
            };
            return PartialView("_Messages", data);
        }


Код: c#
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.
// Service
public void AddMessage(int MemberID, string Nickname, string Message, int TypeID, int CustomerID)
        {
            var m = new tblChatMessage();
            m.MemberID = MemberID;
            m.Nickname = Nickname;
            m.Message = Message;
            m.PostDate = DateTime.Now;
            m.TypeID = TypeID;
            m.CustomerID = CustomerID;

            db.AddTotblChatMessages(m);
            db.SaveChanges();
        }

        public IEnumerable<ChatMessage> GetChatMessages(int MemberID, int Num, DateTime StartDate)
        {
            return (from t in db.tblChatMessages
                    where t.MemberID == MemberID && t.PostDate >= StartDate
                    orderby t.MessageID descending
                    select new ChatMessage
                    {
                        Nickname = t.Nickname,
                        Message = t.Message,
                        TypeID = t.TypeID
                    }).Take(Num);
        }


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
// View
@model ChatMessagesView

@foreach (var m in Model.MessagesList)
{
    <div class="@Model.MessageCss(m.TypeID)">
      @m.Nickname: @Model.SetMessage(m.Message)
    </div>
}


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
$('a.ChatSendBtn').click(function ()
        {
            if (!$('#ChatMessage').val())
                return;

            var data = $('#ChatForm').serialize();
            $('#ChatMessage').val('');
            var ChatMemberID = $('#ChatMemberID').val();
            $.post("/chatbox/addmessage", data, function (val)
            {
                ShowChatMessages(ChatMemberID);
            });
        });


function ShowChatMessages(ChatMemberID)
{
    $.get("/chatbox/list?mID=" + ChatMemberID, function (data)
    {
        $('#ChatMsgList').html(data);
    });
}


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
// Client
$('a.ChatSendBtn').click(function ()
        {
            if (!$('#ChatMessage').val())
                return;

            var data = $('#ChatForm').serialize();
            $('#ChatMessage').val('');
            var ChatMemberID = $('#ChatMemberID').val();
            $.post("/chatbox/addmessage", data, function (val)
            {
                ShowChatMessages(ChatMemberID);
            });
        });


function ShowChatMessages(ChatMemberID)
{
    $.get("/chatbox/list?mID=" + ChatMemberID, function (data)
    {
        $('#ChatMsgList').html(data);
    });
}


...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748087
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще немного ..

SPLASH 2011 Brendan Eich - JavaScript Today and Tomorrow

http://www.youtube.com/v/ifvGot7yVGU
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748093
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Table of contents

[00:50] Javascript as a mature evolving language (ref to Harmony agenda)

[01:30] reference to the module system

[02:00] Eich comments on Javascript improvements looking more like java

[03:38] Javascript as web assembly

[05:00] Javascript is still a language for beginners as it evolves? Eich: the language should not grow too large

[06:03] a pattern tells you that there is a bug in the programming language

[06:18] ref to growing the language exemplified with English language single syllable words

[06:50] impact of removing Javascript bad parts

[08:20] Javascript as a functional language

[09:15] adding types to the language

[10:05] Javascript will never have mandatory types

[10:40] Comments about the Dart language

[11:40] Javascript as a compile target

[13:15] Dart as a warning language

[14:00] Javascript as the most popular language. Since Javascript runs the web (that has so many good parts) it is hard to replace it with something else. Javascript should evolve.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748130
Oopss...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to tsyselsky
Ajax-Factory
Код: c#
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.
var http = {
    _factory : null,
    _factories : [
        function() {return new XMLHttpRequest();},
        function() {return new ActiveXObject("Msxml2.XMLHTTP");},
        function() {return new ActiveXObject("Microsoft.XMLHTTP");}
    ],
    newRequest : function () {
        var max = this._factories.length,
        i = 0;

        if (!this._factory) {
            for (i; i < max; i += 1) {
                try {
                    if (this._factory = this._factories[i]) {
                        return this._factory;
                    }
                }
                catch (e) {
                    continue;
                }
            }
            throw 'XMLHTTP not found!';
        }
        return this._factory();
    }
};


начни читать книгу! пжл!
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748176
Читаю, Oopss. Я просто 'резюм' топика собрал.
PS
И да, Ваш вариант намного эстетичней. Еще раз спасибо.
К сожалению писать красиво на JS пока не получается.
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748235
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tsyselskyи еще немного ..Короче забили сравнивать MVC c WebForms и пошли изучать JavaScript :)
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748237
skyANAtsyselskyи еще немного ..Короче забили сравнивать MVC c WebForms и пошли изучать JavaScript :)

Похоже, что так. :]
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748296
Oopss...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<OFF>
авторКороче забили сравнивать MVC c WebForms и пошли изучать JavaScript :)
     может, хоть ненадолго, в джунглях воцарится спокойствие? ;)
</OFF>
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748338
Oopss...<OFF>
авторКороче забили сравнивать MVC c WebForms и пошли изучать JavaScript :)
     может, хоть ненадолго, в джунглях воцарится спокойствие? ;)
</OFF>

Это вряд ли :]
...
Рейтинг: 0 / 0
MVC vs WebForms
    #37748547
skyANAКороче забили сравнивать MVC c WebForms и пошли изучать JavaScript :)

Есть мнение, что слепое применение шаблонов из справочника, без осмысления причин и предпосылок выделения каждого
отдельного шаблона, замедляет профессиональный рост программиста, так как подменяет творческую работу механической
подстановкой шаблонов.
Люди, придерживающиеся данного мнения, считают, что знакомиться со списками шаблонов необходимо
тогда, когда программист «дорос» до них в профессиональном плане — и не раньше. Хороший критерий нужной степени
профессионализма — выделение шаблонов самостоятельно, на основании собственного опыта.
...
Рейтинг: 0 / 0
25 сообщений из 180, страница 7 из 8
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC vs WebForms
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]