Проверка подлинности формы с помощью jqgrid в asp.net - PullRequest
0 голосов
/ 05 января 2012

Я использую jqgrid, и по щелчку jqgrid он открывает форму на той же странице. Я также использую аутентификацию пользователя ASP.Net в нем.

Проблема в том, что когда я щелкаю по строке сетки, сессия истекает. Он открывает страницу входа в той же форме, вместо перехода на страницу входа.

Может ли кто-нибудь помочь мне в этом отношении?

Вот мой код jqgrid:

$(document).ready(function () {

    $(':checkbox').click(function () {
        var value = $("#cb").is(":checked");
        $("#document-grid").jqGrid('setGridParam', { datatype: function (postdata) {
            $.ajax({
                type: "POST",
                url: "/Calls/Documents.aspx/Find?showarchive=" + value,
                data: JSON.stringify($.extend({ 'filters': '' }, postdata)),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (res) {
                    $("#document-grid")[0].addJSONData(res.d);
                }
            });
        }
        }).trigger("reloadGrid", [{ current: true}]);
    });

    $("#document-grid").generalGrid({
        url: '/Calls/Documents.aspx/Find',
        jqGridOptions: {
            pager: '#document-grid-pager',
            colNames: ['Titel', 'Uploaddatum', 'Omschrijving', 'Bestandsnaam'],  //, 'Type' ],
            colModel: [
                    { name: 'Titel', index: 'Title' },
                    { name: 'Uploaddatum', index: 'Uploaddatum', sorttype: 'date', searchoptions: {
                            dataInit: function (elem) {
                                $(elem).datepicker({
                                    onSelect: function(dateText, inst){ $("#document-grid")[0].triggerToolbar(); }
                                });
                            },
                        }
                    },
                    { name: 'Beschrijving', index: 'Description' },
                    { name: 'Bestandsnaam', index: 'Filename' }
            //                    { name: 'Type', index: 'Type' }
                ],
            sortname: 'UploadDate',
            caption: '',
            onSelectRow: function (Id) {
                alert(Id);
                $("#document-form").box('destroy').ajaxFormPanel('destroy').ajaxFormPanel({ url: '/Forms/Document.aspx?Id=' + Id,
                    loaded: function (s) {
                        $("#txtUploadDate, #txtExpirationDate", s.element).datepicker();
                        $(s.element).box({ title: 'Document bewerken' });
                    },
                    postback: function (s) {
                        $("#document-grid").trigger("reloadGrid", [{ current: true}]);
                        // $("#document-form").ajaxFormPanel('destroy').ajaxFormPanel({ url: '/Forms/Document.aspx?Edited=true&Id=' + Id }).ajaxFormPanel('open');                    
                    }
                }).ajaxFormPanel('open');
            }
        }
    });

и мой код аутентификации пользователя в Web.config:

<authentication mode="Forms">
  <forms loginUrl="Login.aspx"
         protection="All"
         timeout="1"
         name=".ASPXFORMSAUTH"
         path="/"
         requireSSL="false"
         slidingExpiration="true"
         defaultUrl="Default.aspx"
         cookieless="UseDeviceProfile"
         domain=""
         enableCrossAppRedirects="false" />
</authentication>

Спасибо заранее ..

1 Ответ

0 голосов
/ 05 января 2012

я мог бы предположить, что вы можете проверить http-ответ для кода возврата 301 (перенаправлено).что-то вроде

if (response.status == 301)
{
    document.location = "login.aspx";
    return;
}
load jqgrid normally.
...