пятница, 30 января 2009 г.

Как сделать, чтобы в DotNetNuke работала при авторизации опция "Помнить меня"

Опция "Помнить меня" ("Remember Me") при логине на сайте сделанном на DotNetNuke осуществлена посредством размещения зашифрованной аутентификационного куки (cookie) на компьютере пользователя.

Окончане срока действия этого куки контролируется сначением параметра "timeout" в в узле Forms Autentication node в конфигурационном файле web.config.

< name=".DOTNETNUKE" protection="All" timeout="60" cookieless="UseCookies">

Значение по умолчанию 60 минут, поэтому сайт не может "запомнить" кого-либо по истечении этого времени.

Для увеличения времени запоминания аутентифицированных пользователей нужно увеличить значение параметра timeout.

< name=".DOTNETNUKE" protection="All" timeout="22345" cookieless="UseCookies">

Вы можете также установить режим sliding expiration, который подразумевает то, что каждый раз, когда пользователь посещает веб-сайт до истечения срока действия аутентификационного куки, то срок действия этого куки продлевается на величину параметра "timeout". Этот режим включается так:

< name=".DOTNETNUKE" protection="All" timeout="10080" slidingexpiration="true" cookieless="UseCookies">

Посмотреть как это работает можно на этом сайте.

вторник, 13 января 2009 г.

одновременно работающий display:inline-block для Firefox, Internet Explorer и Opera

Чтобы display:inline-block корректно работало одновременно в  Internet Explorer, Opera нужно в таблице стилей пропирсать следующее:


div{
display:-moz-inline-stack;/*Нужно для Firefox*/
display:inline-block; /*Не применяется в IE и Firefox*/
_overflow:hidden;/*фикс для IE6*/
zoom:1;/*включаем hasLayout*/
*display:inline;/*при hasLayout true display:inline ведёт себя как display:inline-block*/
}

вторник, 6 января 2009 г.

Редактирование строк в ListView контроле на .NET

Если в ListView выбрать тип отображения (View) Details, и вам нужно будет редактировать значения ячеек, то вы сможете сделать это только в первой колонке.
Чтобы редактировать значения ячеек, находящихся в колонках отличных от первой, нужно имитировать редактирование, подставляя пользователю TextBox или ComboBox в том месте и с тем размером, где находится предполагаемая редактируемая ячейка. Таким образом пользователь думает, что он редактирует ячейку, а на самом деле он редактирует TextBox (или ComboBox).

ЗКак уменьшить размер базы данных MS SQL Server

На хостинг-серверах обычно существует квота для базы данных MS SQL Server. Даже если ваша база данных содержит не много данных, но идет интенсивное добавление/модификация данных, то в определенный момент размер базы данных может превысить выделенный лимит и ваш аккаунт может быть, как говорят буржуи, "suspended".
Это может произойти по причине увеличения transaction log.
Очистиь его можно командой:
BACKUP LOG [databasename] WITH TRUNCATE_ONLY

После чего нужно будет еще сделать Shrink Database.
Для примера, размер базы данных сайта, который мне доводится обслуживать, уменьшился с 890MB до 12MB.
Стоит также отметить, что до следующего бекапа ваша БД остается незащищенной (на случай отказа оборудования и т.п.), так как transaction log мы очистили.

Замечу также, что в SQL Server 2008 "WITH TRUNCATE_ONLY" не поддерживается. Поэтому очистить лог перед Shrink-ом можно переключив Recovery Model из режима Full в Simple.

среда, 24 декабря 2008 г.

Как изменить строку "You are here" в сайте на Dotnetnuke чтобы она отображалась по русски

Как изменить строку "You are here" в сайте на Dotnetnuke чтобы она отображалась по русски?

Нужно найти папку /Portals/_defauls/Skins/MinimalExtrophy/App_localResources. Там будет файл index.ascx.resx. Нужно скопировать его в файл index.ascx.ru-RU.resx, а потом в текстовом редакторе открыть этот файл и изменить там строку "You are here" на "Вы здесь".
Такое решение работает для DNN версии 4.9 и выше. Посмотреть ка это работет можно здесь

понедельник, 17 ноября 2008 г.

Ошибка в сайте на Dotnetnuke: System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion()

Вот уже неделю наблюдаю в журнале сайта, сделанного на CMS Dotnetnuke, сообщение об ошибке:

Message: DotNetNuke.Services.Exceptions.PageLoadException: Value cannot be null. Parameter name: String ---> System.ArgumentNullException: Value cannot be null. Parameter name: String at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion() at DotNetNuke.UI.Utilities.ClientAPI.BrowserSupportsFunctionality(ClientFunctionality eFunctionality) at DotNetNuke.UI.WebControls.DNNMenu.get_IsDownLevel() at DotNetNuke.UI.WebControls.DNNMenu.LoadPostedXML() at DotNetNuke.UI.WebControls.DNNMenu.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.UI.Skins.NavObjectBase.InitializeNavControl(Control objParent, String strDefaultProvider) at DotNetNuke.UI.Skins.Controls.Nav.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.Framework.DefaultPage.Page_Init(Object sender, EventArgs e) at System.Web.UI.Control.OnInit(EventArgs e) at System.Web.UI.Page.OnInit(EventArgs e) at DotNetNuke.Framework.PageBase.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---

Причем бывает UserAgent: Mozilla и бывает UserAgent: Yandex/1.01.001 (compatible; Win16; F).

Все это похоже на ботов Яндекса и Гугла, хотя, так как в журнале нет IP-адресов, пока это точно не известно. Нужно еще будет проверить лог IIS-а, чтобы это точно узнать. В любом случае как-то некрасиво получается, что можно вот так просто DNN-сайт свалить в эксепшн. А уж тем более, если это Боты, то такой вариант разработчики должны были учесть.

Придется теперь лезть в ядро и ковыряться в vb.NET исходниках. Кто вообще придумал Dotnetnuke писать не на C# ?!!

понедельник, 10 ноября 2008 г.

Бегун требует аттестат WebMoney Transfer для вывода денег

С ноября 2008 года, вывести деньги из системы контекстной рекламы Бегун можно только тем, кто получил аттестат WebMoney Transfer. Причем, сумму меньше 300 у.е. можно вывести имея начальный аттестат, а больше - уже нужен персональный.

Для получения начального аттестата нужно заполнить заявку в которой указать свои персональные данные (Ф.И.О., место и дату рождения, прописку, паспорт и т.д. вплоть до размера трусов). После чего эти данные будут проверены при ЛИЧНОЙ (!) встрече одним из Персонализаторов. При чем за это НУЖНО ЗАПЛАТИТЬ от $3 и выше!
Персонализаторы есть только в больших городах. А если я живу в каком-то Мухосранске? Теперь я должен ехать фиг знает куда, платить за билет, платить за персонализацию, выкладывать спецслужбам все свои данные... И все это ради того, чтобы получить жалкие $50?

Begun сильно меня разочаровал. Думаю, что не только меня. С такими заморочками он потеряет много партнеров. А Яндекс директ и Google AdSence - приобретут.
Зачем Бегун сам себе усложняет жизнь, вводя необходимость наличия аттестата WebMoney Transfer?

понедельник, 3 ноября 2008 г.

Как программно изменить название веб-страницы в Dotnetnuke ?

В обычной .aspx странице программно изменить название (title) очень просто:


protected void Page_Load(object sender, EventArgs e)
{
this.Title = "Обычная веб-страница";
}


В DNN модуле такой код не даст ничего. Название страницы будет то, которое сформирует ядро Dotnetnuke.
Но Title страницы на Dotnetnuke все-таки можно без проблем изменить. Делается это так:

protected void Page_Load(object sender, EventArgs e)
{
DotNetNuke.Framework.CDefault page = (DotNetNuke.Framework.CDefault)this.Page;
page.Title = "Веб-страница в Dotnetnuke";
}



Посмотреть как это работает можно здесь: сайт а-класса школа 5 города Ахтырка

воскресенье, 2 ноября 2008 г.

Сайт Одноклассники.ру стал платным: зажрались окончательно!

Со вчерашнего дня за регистрацию на супер-пупер популярном сайте Одноклассники.ру придется раскошелиться: нужно будет прислать платное СМС, причем его цена различная для разных операторов. 
За эти сайтом уже давно замечена жажда к деньгам: то режим "невидимка" платный придумали, то оценку "5+" за деньги придумали, то "застраховать фотографию" опять же за деньги. Теперь вот и регистрация платная. Думаю следующим шагом будет абонплата.
В условиях кризиса хозяева сайта решили повысить свои сверхприбыли. Это их право. В Сети есть еще много других БЕСПЛАТНЫХ социальных сетей, поэтому не нужно зацикливаться на этом зажравшемся сайте.
Давно есть подозрения, что "Одноклассники.ру" контролируются спецслужбами, а так как в России карточку мобильного оператора не купить без паспорта, то теперь, отправив СМС для регистрации на сайте, эта карточка привязывается еще и к аккаунту на  "Одноклассниках". В общем тотальный контроль. Таким образом убиваются 2 зайца: сайт получает дополнительный доход, а спецслужбы по номеру телефона находят аккаунт на сайте.
В крайнем случае можно создать свой сайт, например вот такой: сайт 11-А класса 5-й школы, который всегда будет бесплатным и не будет тайным проектом спецслужб :)

среда, 29 октября 2008 г.

Очередной лохотрон: обманщики на Bez-Obid.Ru ( Zhlobam.net)

Для заработка в интернет появился очередной сервис. Сначала размещался на Zhlobam.net а потом плано перешел на Bez-Obid.Ru. Суть в том, что одни люди размещают на этом сайте жалобы, а люди, кототрые хотят заработать берут специально подготовленные ссылки на жалобы и постят и где-попало: на сайтах, форума, блогах. За каждый уникальны клик (Uniq) сайт начисляет 0.5 цента на счет партнера. Минимальная сумма к выводу $20.
Я тоже (в моем то возрасте!) повелся на эту фигню. Решил заработать двадцатку на пиво. Сначала вроде бы все шло неплохо были клики и около 80% из них были "уники". Но постепенно, в течении месяца процент "уников" уменьшался и дошло вообше до смешного. Смотрите скриншот:



В общем, такими темпами $20, которые можно вывести себе на кошелек, соберутся только к старости.
Люди! Не ведитесь на этот лохотрон: Bez-Obid.Ru обманывают жестко и нагло.
Bez-Obid.Ru - кидалово очередное.

Жаль потраченного времени. Ну что-ж будет наука на будущее. Надеюсь мой опыт Вам поможет :)