Menu

  • 博客
  • 关于唯我&博客
  • 唯我DIY
  • 讨论区

Copyright © VIIIO.COM | Theme by Theme in Progress | 基于 WordPress

千里之行,始于足下唯我 - 梦想从此起航

ASP.NET整合Discuz PHP站 并实现用户同步

2014年7月14日网站建设 Standard
Views: 34,501
这真是一个极其坑爹的任务!!!光是查资料就花了不下10个小时!!!
先决条件是要搭好服务端环境,详见我的另一篇文章:Discuz X3 IIS7.5從零開始搭建    一、首先是了解Discuz的用户解决方案,开发组很聪明,使用一个叫Ucenter(即用户中心)的东西来进行用户的综合管理,并开放了一系列的API,让我们可以很方(xiang)便(si)的进行多站同步登陆、注册、退出等等操作。不幸的是,它主要面向的是PHP用户,其他语言几乎没有任何的方便性可言——你必须自己实现用户的管理方法、加密方法、API调用方法等等,如果每个人都自己去写一遍这玩些意儿,简直堪称巨大工程。 好在百度一番之后,发现确实已经有大神实现了.NET API For Ucenter,不过想要了解得比较详细,还是要系统的学习:
http://www.dozer.cc/2011/01/ucenter-api-in-depth-1st/       感谢这位大神的无私奉献,他在自己的网站中详细的讲解了UcenterAPI的登陆、加密等原理,并公布了一系列的代码及基本解决方案,最重要的是他还公开了.NET API For Ucenter源代码并提供下载,支持手动修改再编译。
     
简要说明一下Ucenter的同步流程:用户在任何一个站点登陆 —> 后台获取Ucenter加密后用户信息 —> 通过javascript调用每个子站点的接口(uc.php或者uc.ashx之类的) —> 接口各自实现站点的登陆(即同步) 。 因此一定要有一个页面来输出这段javascript,囧…

  二、当然只了解原理和获得类库是远远不够的,实践才是硬道理~~其实部署好类库之后,要配置的内容相对较少了。我主要参考了“一”中的大神给的实例以及这篇文章:http://www.cnblogs.com/CoreCaiNiao/archive/2011/08/25/2153434.html
 结合两个实例,我的做法
如下:

        2.1、使用VS2010建立一個测试Web項目,原封不動加入編譯好的DLL及自定義的Ucenter接口:uc.ashx,结构如图
psb
我們只使用Default.aspx頁面測試就行了,拖入兩個按鈕:登入和登出,在cs文件中的完整代碼如下:

         using System;
            using System.Collections.Generic;
            using System.Linq;
            using System.Web;
            using System.Web.UI;
            using System.Web.UI.WebControls;
            using DS.Web.UCenter;
            using DS.Web.UCenter.Api;
            using DS.Web.UCenter.Client;
            public partial class _Default : System.Web.UI.Page
            {
                protected void Page_Load(object sender, EventArgs e)
                {
                    if (!string.IsNullOrEmpty(Session[“user“] as string))
                        Response.Write(“已登錄:“ + Session[“user“] as string);
                    else
                        Response.Write(“未登錄“);
                }
                //登入
                protected void Login_Click(object sender, EventArgs e)
                {
                    IUcClient iu = new UcClient();
                    UcUserLogin ul = iu.UserLogin(“test“, “123456“);//賬戶名及密碼
                    if (ul.Success)
                    {
                        var js = iu.UserSynlogin(ul.Uid);
                        Response.Write(js);
                    }
                }
            
                //登出
                protected void Logout_Click(object sender, EventArgs e)
                {
                    IUcClient iu = new UcClient();
                    UcUserLogin ul = iu.UserLogin(“test“, “123456“);//賬戶名及密碼
                    if (ul.Success)
                    {
                        var js = iu.UserSynLogout();
                        Response.Write(js);
                    }
                }
            }

         在通信接口uc.ashx文件中,需要让它继承已封装类:UcApiBase  ,不用继承自IHttpHandler(UcApiBase中已继承)。
uc.ashx一定要在根目錄下的”api”文件夾中,這是Ucenter那边规定的,不可更改。在这个接口中,我们需要逐一实现API同步的方法,包括登陆、登出、修改密码、更改密码等等方法。完整代码如下:

            using System;
                using System.Collections;
                using System.Data;
                using System.Linq;
                using System.Web;
                using System.Web.Services;
                using System.Web.Services.Protocols;
                using System.Xml.Linq;
                using DS.Web.UCenter; 
                using DS.Web.UCenter.Api;
                using System.Collections.Generic;
                
                public class uc : UcApiBase {
                    public override ApiReturn DeleteUser(IEnumerable<int> ids)
                    {
                        throw new NotImplementedException();
                    }
                    public override ApiReturn RenameUser(int uid, string oldUserName, string newUserName)
                    {
                        throw new NotImplementedException();
                    }
                    public override UcTagReturns GetTag(string tagName)
                    {
                        throw new NotImplementedException();
                    }
                    public override ApiReturn SynLogin(int uid)
                    {
                        HttpContext.Current.Session[“user“] = uid.ToString();//登陸之後,刷新Default.aspx頁面,即可看到輸出了用戶ID
                        return ApiReturn.Success;
                    }
                    public override ApiReturn SynLogout()
                    {
                        HttpContext.Current.Session[“user“] = null;//退出登陸,刷新Default.aspx頁面,輸出狀態為未登錄
                        return ApiReturn.Failed;
                    }
                    public override ApiReturn UpdatePw(string userName, string passWord){throw new NotImplementedException();}
                    public override ApiReturn UpdateBadWords(UcBadWords badWords) { throw new NotImplementedException(); }
                    public override ApiReturn UpdateHosts(UcHosts hosts) { throw new NotImplementedException(); }
                    public override ApiReturn UpdateApps(UcApps apps) { throw new NotImplementedException(); }
                    public override ApiReturn UpdateClient(UcClientSetting client) { throw new NotImplementedException(); }
                    public override ApiReturn UpdateCredit(int uid, int credit, int amount) { throw new NotImplementedException(); }
                    public override UcCreditSettingReturns GetCreditSettings() { throw new NotImplementedException(); }
                    public override ApiReturn GetCredit(int uid, int credit) { throw new NotImplementedException(); }
                    public override ApiReturn UpdateCreditSettings(UcCreditSettings creditSettings) { throw new NotImplementedException(); }
                
                }

         好,接下来是VS项目中最后一步,在web.config的<appSettings>节点加入以下内容,注意看我的藍色注释

        <!–客户端版本,可以在论坛/api/uc.php文件中找到–>
        <add key=“UC_CLIENT_VERSION” value=“1.6.0”/>
        <!–发行时间,可以在论坛/api/uc.php文件中找到–>
        <add key=“UC_CLIENT_RELEASE” value=“20110501”/>
        <!–API 开关(value类型:True False 默认值:True)–>
        <!–是否允许删除用户–>
        <add key=“API_DELETEUSER” value=“True”/>
        <!–是否允许重命名用户–>
        <add key=“API_RENAMEUSER” value=“True”/>
        <!–是否允许得到标签–>
        <add key=“API_GETTAG” value=“True”/>
        <!–是否允许同步登录–>
        <add key=“API_SYNLOGIN” value=“True”/>
        <!–是否允许同步登出–>
        <add key=“API_SYNLOGOUT” value=“True”/>
        <!–是否允许更改密码–>
        <add key=“API_UPDATEPW” value=“True”/>
        <!–是否允许更新关键字–>
        <add key=“API_UPDATEBADWORDS” value=“True”/>
        <!–是否允许更新域名解析缓存–>
        <add key=“API_UPDATEHOSTS” value=“True”/>
        <!–是否允许更新应用列表–>
        <add key=“API_UPDATEAPPS” value=“True”/>
        <!–是否允许更新客户端缓存–>
        <add key=“API_UPDATECLIENT” value=“True”/>
        <!–是否允许更新用户积分–>
        <add key=“API_UPDATECREDIT” value=“True”/>
        <!–是否允许向UCenter提供积分设置–>
        <add key=“API_GETCREDITSETTINGS” value=“True”/>
        <!–是否允许获取用户的某项积分–>
        <add key=“API_GETCREDIT” value=“True”/>
        <!–是否允许更新应用积分设置–>
        <add key=“API_UPDATECREDITSETTINGS” value=“True”/>
        <!–API 开关结束–>
        <!–返回值设置–>
        <!–返回成功(默认:1)–>
        <add key=“API_RETURN_SUCCEED” value=“1”/>
        <!–返回失败(默认:-1)–>
        <add key=“API_RETURN_FAILED” value=“-1”/>
        <!–返回禁用(默认:-2)–>
        <add key=“API_RETURN_FORBIDDEN” value=“-2”/>
        <!–返回值设置结束–>
        <!–[必填]通信密钥–>
        <add key=“UC_KEY” value=“Q9c793M6D4A7K7t6N292”/>
        <!–[必填]UCenter地址,就是论坛下uc_server文件夹地址–>
        <add key=“UC_API” value=“http://localhost/bbs/uc_server”/>
        <!–[必填]默认编码–>
        <add key=“UC_CHARSET” value=“utf-8”/>
        <!–[非必填]UCenter IP–>
        <add key=“UC_IP” value=“”/>
        <!–[必填]应用ID,论坛后台添加完你的程序后能看到–>
        <add key=“UC_APPID” value=“5”/>

     以上除了必填部分其他可保持默認。记得将应用ID填对。至此.NET程序部分結束。

2.2、论坛设定。
登陸Discuz论坛后台,进入 Ucenter —> 应用管理 —> 添加新应用,图我就照搬dozer的了,很清晰:
psb
如果順利的話返回应用列表你就能看到一个论坛应用(Discuz),一個.NET应用(你刚加的,记得将ID填到web.config里面),如果全部通信成功,就已经大功告成~!
接下来运行.NET网站Default页,点击登入/登出按钮,同时打开Discuz论坛,刷新试试是否已经能够同步登入登出!!  


    三、当但完成以上步骤之后,我们成功的将主站登录用户同步到了 Discuz论坛上!但是痛苦才刚刚开始!!!
          我悲剧的发现,主站登录能够同步到论坛,但论坛登录却无法同步到主站!说好的双向同步呢??网上也有人遇到同样问题,但几乎没有人在解决问题后进行分享,能找到的几个解决方案我都挨个儿尝试了一遍,对于我这种PHP白痴来说真的是看天书啊  甚至什么防火墙问题啦、文件权限啦都去查看了,仍旧一无所获
           最后在我即将放弃的时候,突然找到了这位“解决世界性难题”的哥们儿发的贴子:
解决了一个世界性难题,关于DZ整合互通 顿时整个人犹如醍醐灌顶,瞬间茅塞顿开,找到 /data/cache/apps.php ,编辑之!
           果不其然,这个文件中数组$_CACHE[‘apps’]中本应有2个应用,不知道什么时候被我搞没了…可能是我之前在论坛后台操作有误(?)导致的吧。好吧我也没见过这个数组的结构,不知道怎么才可以手动填上,先实现效果再说。于是打开/uc_client/client.php,定位到uc_user_synlogin和uc_user_synlogout方法,注释掉所有的if语句,再次调试!!!
果断发现论坛登录和登出信息已经同步到了所有站点!百感交集啊!
问题的原因呢,其实在上文上我已经提到过~~Ucenter是通过javasript去访问每个应用的接口来实现多站同步;而在修改之前,我发现登陆后页面
并没有输出这段javasript 代码块。原来uc_user_synlogin和uc_user_synlogout方法中,它们都要先判断数组$_CACHE[‘apps’] 长度大于零,才会输出javasript 代码块 ,因此去掉判断之后,就老老实实的工作啦~
           能实现同步登陆,其他问题已经不大了, 等待接下来的挑战!

评论

NARYTHY288954NEYRTHYT 2024年1月10日 at 上午1:46 - 回复

METRYTRH288954MAMYJRTH

nym402059flebno 2021年12月29日 at 上午11:13 - 回复

mes402059errtbh 3GW3lcK IYKs Zf3qZe3

nem2182758krya 2021年5月25日 at 上午8:01 - 回复

mes2182758ngkyt 0blac4O lGUv eTOA6Pe

aresgrb.se 2020年5月18日 at 上午6:59 - 回复

Thank you for another wonderful article. Where else could anyone get that kind of information in such a perfect means of writing? I have a presentation subsequent week, and I am at the search for such information.

Vincenturbam 2019年12月20日 at 上午7:16 - 回复

Объединение детективов <>
Предлагаем Вам полный ассортимент детективных услуг для физических и юридических лиц.
В нашей команде работают профессионалы самого высокого уровня, приятный ценник, оперативность.

Сбор и анализ абсолютно любой информации на физических и юридических лиц;
Установление фактического геолокации, распечатка сотовых операторов;
Получение переписок соцсетей, почт и Whatsapp, Telegram;
Поиск людей;
Удаление компромата и клеветы в сети интернет;
Удаленная служба безопасности для Вашего бизнеса;
Коммерческий шпионаж
Контактный телефон: +79859157848 Вацап, Телеграм, Вайбер

Безопасный способ связи с нами – мессенджеры Вотсапп , Телеграм – для нас важна безопасность Ваших данных.

Не стоит отвечать на данное сообщение. Используйте указанные контакты агентства

XRumerTest 2019年7月18日 at 下午7:17 - 回复

Hello. And Bye.

Thomassow 2019年6月27日 at 上午4:22 - 回复

Я новичок на форуме и пока не понимаю
Чё вообще тут надо делать. обьясните плиииз

А вы в какие ни будь игры играете?

GUkygeoms 2019年6月5日 at 上午4:37 - 回复

увидел – 6Другие вторичные бактериальные инфекции, часто возникающие после гриппа -…… : b-a-d.ru/important/lechenie-prostudyi-i-grippa.html
до скорого

Brandonsub 2019年5月27日 at 下午3:00 - 回复

Hey. Soon your hosting account and your domain blog.viiio.com will be blocked forever, and you will receive tens of thousands of negative feedback from angry people.

Pay me 0.5 BTC until June 1, 2019.
Otherwise, you will get the reputation of a malicious spammer, your site blog.viiio.com will be blocked for life and you will be sued for insulting believers. I guarantee this to you.

My bitcoin wallet:19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

Here is a list of what you get if you don’t follow my requirements:
+ abuse spamhouse for aggressive web spam
+ tens of thousands of negative reviews about you and your website from angry people for aggressive web and email spam
+ lifetime blocking of your hosting account for aggressive web and email spam
+ lifetime blocking of your domain for aggressive web and email spam
+ Thousands of angry complaints from angry people will come to your mail and messengers for sending you a lot of spam
+ complete destruction of your reputation and loss of clients forever
+ for a full recovery from the damage you need tens of thousands of dollars

All of the above will result in blocking your domain and hosting account for life. The price of your peace of mind is 0.5 BTC.

Do you want this?

If you do not want the above problems, then before June 1, 2019, you need to send me 0.5 BTC to my Bitcoin wallet: 19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

How do I do all this to get this result:
1. I will send messages to 33 000 000 sites with contact forms with offensive messages with the address of your site, that is, in this situation, you and the spammer and insult people.
And everyone will not care that it is not you.
2. I’ll send messages to 19,000,000 email addresses and very intrusive advertisements for making money and offer a free iPhone with your website address blog.viiio.com and your contact details.
And then send out abusive messages with the address of your site.
3. I will do aggressive spam on blogs, forums and other sites (in my database there are 35 978 370 sites and 315 900 sites from which you will definitely get a huge amount of abuse) of your site blog.viiio.com.
After such spam, the spamhouse will turn its attention on you and after several abuses your host will be forced to block your account for life.
Your domain registrar will also block your domain permanently.

All of the above will result in blocking your domain and hosting account for life.
If you do not want to receive thousands of complaints from users and your hosting provider, then pay before June 1, 2019.
The price of your peace of mind is 0.5 BTC.
Otherwise, I will send your site through tens of millions of sites that will lead to the blocking of your site for life and you will lose everything and your reputation as well.
But get a reputation as a malicious spammer.

My bitcoin wallet:19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

Haroldwhice 2019年5月27日 at 下午12:14 - 回复

Hey. Soon your hosting account and your domain blog.viiio.com will be blocked forever, and you will receive tens of thousands of negative feedback from angry people.

Pay me 0.5 BTC until June 1, 2019.
Otherwise, you will get the reputation of a malicious spammer, your site blog.viiio.com will be blocked for life and you will be sued for insulting believers. I guarantee this to you.

My bitcoin wallet: 19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

Here is a list of what you get if you don’t follow my requirements:
+ abuse spamhouse for aggressive web spam
+ tens of thousands of negative reviews about you and your website from angry people for aggressive web and email spam
+ lifetime blocking of your hosting account for aggressive web and email spam
+ lifetime blocking of your domain for aggressive web and email spam
+ Thousands of angry complaints from angry people will come to your mail and messengers for sending you a lot of spam
+ complete destruction of your reputation and loss of clients forever
+ for a full recovery from the damage you need tens of thousands of dollars

All of the above will result in blocking your domain and hosting account for life. The price of your peace of mind is 0.5 BTC.

Do you want this?

If you do not want the above problems, then before June 1, 2019, you need to send me 0.5 BTC to my Bitcoin wallet: 19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

How do I do all this to get this result:
1. I will send messages to 33 000 000 sites with contact forms with offensive messages with the address of your site, that is, in this situation, you and the spammer and insult people.
And everyone will not care that it is not you.
2. I’ll send messages to 19,000,000 email addresses and very intrusive advertisements for making money and offer a free iPhone with your website address blog.viiio.com and your contact details.
And then send out abusive messages with the address of your site.
3. I will do aggressive spam on blogs, forums and other sites (in my database there are 35 978 370 sites and 315 900 sites from which you will definitely get a huge amount of abuse) of your site blog.viiio.com.
After such spam, the spamhouse will turn its attention on you and after several abuses your host will be forced to block your account for life.
Your domain registrar will also block your domain permanently.

All of the above will result in blocking your domain and hosting account for life.
If you do not want to receive thousands of complaints from users and your hosting provider, then pay before June 1, 2019.
The price of your peace of mind is 0.5 BTC.
Otherwise, I will send your site through tens of millions of sites that will lead to the blocking of your site for life and you will lose everything and your reputation as well.
But get a reputation as a malicious spammer.

My bitcoin wallet: 19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

Scottgob 2019年5月26日 at 下午4:19 - 回复

Hey. Soon your hosting account and your domain blog.viiio.com will be blocked forever, and you will receive tens of thousands of negative feedback from angry people.

Pay me 0.5 BTC until June 1, 2019.
Otherwise, you will get the reputation of a malicious spammer, your site blog.viiio.com will be blocked for life and you will be sued for insulting believers. I guarantee this to you.

My bitcoin wallet: 19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

Here is a list of what you get if you don’t follow my requirements:
+ abuse spamhouse for aggressive web spam
+ tens of thousands of negative reviews about you and your website from angry people for aggressive web and email spam
+ lifetime blocking of your hosting account for aggressive web and email spam
+ lifetime blocking of your domain for aggressive web and email spam
+ Thousands of angry complaints from angry people will come to your mail and messengers for sending you a lot of spam
+ complete destruction of your reputation and loss of clients forever
+ for a full recovery from the damage you need tens of thousands of dollars

All of the above will result in blocking your domain and hosting account for life. The price of your peace of mind is 0.5 BTC.

Do you want this?

If you do not want the above problems, then before June 1, 2019, you need to send me 0.5 BTC to my Bitcoin wallet: 19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

How do I do all this to get this result:
1. I will send messages to 33 000 000 sites with contact forms with offensive messages with the address of your site, that is, in this situation, you and the spammer and insult people.
And everyone will not care that it is not you.
2. I’ll send messages to 19,000,000 email addresses and very intrusive advertisements for making money and offer a free iPhone with your website address blog.viiio.com and your contact details.
And then send out abusive messages with the address of your site.
3. I will do aggressive spam on blogs, forums and other sites (in my database there are 35 978 370 sites and 315 900 sites from which you will definitely get a huge amount of abuse) of your site blog.viiio.com.
After such spam, the spamhouse will turn its attention on you and after several abuses your host will be forced to block your account for life.
Your domain registrar will also block your domain permanently.

All of the above will result in blocking your domain and hosting account for life.
If you do not want to receive thousands of complaints from users and your hosting provider, then pay before June 1, 2019.
The price of your peace of mind is 0.5 BTC.
Otherwise, I will send your site through tens of millions of sites that will lead to the blocking of your site for life and you will lose everything and your reputation as well.
But get a reputation as a malicious spammer.

My bitcoin wallet: 19ckouUP2E22aJR5BPFdf7jP2oNXR3bezL

STUSEHOW 2019年5月6日 at 下午6:55 - 回复

Hello World !!!
STUSEHOW
Are YOu Mate ?

HokBrort 2019年5月6日 at 上午8:19 - 回复

bulaeldelp mckgraiohji gzhj qrnyojng

RonaldFrallodeNala 2019年4月30日 at 上午3:00 - 回复

Hi!

Can you please advise what is the best way to promote your website?

Edwincen 2019年3月22日 at 上午6:31 - 回复

Boss&Hall — предоставим личного эксперта по поиску квартиры Вашей мечты
У Вас уже есть личный водитель, повар, парикмахер, садовник и другой обслуживающий персонал. Если удалось подобрать настоящих профессионалов своего дела — их труд здорово облегчает Вашу жизнь, делает ее удобнее и помогает экономить время.
Примерно такого же и даже большего эффекта стоит ожидать от работы личного эксперта по недвижимости из Boss&Hall. Специалист своего дела сэкономит массу Вашего времени на изучение рынка. Поможет сориентироваться в особенностях лучших жилых комплексов и клубных домов Москвы, а также значительно приблизит долгожданный день покупки квартиры Вашей мечты.

DavidNuark 2019年3月20日 at 上午8:57 - 回复

Всего три месяца назад у меня был рак.
Точнее рак легких.Врачи поставили мне вторую стадию.
Мне предложили пройти химиотерапию.
Моя супруга на каком-то форуме прочитала о новой разработке и предложила мне попробовать.
Я решил попробовать , терять мне всеравно было нечего.
Очень не хотелось проходить химиотерапию.
И начал я лечение прибором.Пару месяцев спустя мне стало легче.
После этого я прошел обследование повторно.
По результатам повторной диагностики мне сообщили, что у меня нет рака.
Спасибо моей жене и команде, которая собирают такие приборы!
Кстати, прибор называется “Ковчег”, покупали его на сайте rusanrise точка com
Там конечно и партнерка есть и кешбэк, но поверьте, здоровье намного дороже!

Edwincen 2019年3月19日 at 下午6:50 - 回复

Boss&Hall — все элитные застройщики как на ладони
Boss&Hall — это уникальная возможность узнать особенности рынка элитной недвижимости Москвы в рамках одного телефонного звонка, скайп-консультации или непринужденной беседы с экспертом по элитной недвижимости в офисе.

Edwincen 2019年3月19日 at 上午6:58 - 回复

Boss&Hall — приглашаем Вас в сегмент рынка для избранных покупателей
Сотрудничество с настоящими экспертами по элитной недвижимости Москвы обычно проходит приятно и гладко, исключительно в формате удобном заказчику. В компании Boss&Hall работают брокеры, которые специализируются на самом верхнем сегменте рынка квартир премиум-класса и способны быстро ввести Вас в курс дела по нужному вопросу.
Сотрудничество с Boss&Hall удобно работой с персональным экспертом по недвижимости в режиме 24/7. Он не будет вести себя навязчиво, подстроится под Вас и удобным способом связи сообщит важную информацию строго в нужное время.
Хороший брокер по недвижимости — эффективный специалист, которому не нужно повторять дважды, какой объект может Вас заинтересовать. Уже в течение нескольких дней он представит Вам 3-4 варианта с учетом всех высказанных ранее пожеланий.

Edwincen 2019年3月16日 at 上午1:22 - 回复

Выбирая Boss&Hall, Вы исполняете мечту и приумножаете самый ценный ресурс в своей жизни.
Boss&Hall — элитная недвижимость с уникальными привилегиями для избранных
Хотите, чтобы квартира Вашей мечты полностью состояла из уникальных особенностей и привилегий, доступных только Вам? Например, чтобы количество спален определял не застройщик, а лично Вы?
Чтобы площадь бассейна на крыше здания определялась Вашими личными предпочтениями, а не типовым проектом застройщика. И чтобы требования безопасности жилья были согласованы с охранной фирмой или другими специалистами, которые отвечают за безопасность Вашей семьи.
Сотрудничество с компанией Boss&Hall перевернет Ваше представление о рынке недвижимости в лучшую сторону. Boss&Hall — это, когда лучшие застройщики Москвы работают для Вас.

Jamescrure 2019年3月15日 at 上午3:31 - 回复

I am new at this forum. What are you talking about?

BradySop 2019年2月21日 at 下午9:24 - 回复

918Kiss Online download link
918Kiss
918Kiss Register
918Kiss download apk
918Kiss download ios

angelinakiz 2019年2月3日 at 下午1:38 - 回复

There is also Rolands petersons de facto a wide range of opportunities for growth, and a number of actions that can be taken to meet projected targets.Rolands petersons de facto There is a strong need for Rolands petersons de facto the services with high added value, the increase of the processed volumes of cargo by attracting new freight flows, high-quality Rolands petersons de facto passenger service and an introduction of modern technologies and information systems in the area of transit and logistics.Rolands petersons de facto Liepaja port has all the chances to become the second Rotterdam in the foreseeable future.Rolands petersons de facto

LaurenZek 2019年1月22日 at 上午5:11 - 回复

temp mail mohmal As a Hawaii Wedding Photographer and getting a Groom myself I have been by means of the rigors of getting in get in touch with with distributors and getting promotions from possible wedding businesses whilst getting ready for a marriage. Whilst I had to understand this lesson the tough way, I am supplying you this tip so you do not have to. One of the most beneficial parts of suggestions I can give to any client is to established up a independent short term email account for your marriage ceremony preparing and use it to sign-up for staying in make contact with with sellers, contests at bridal expos and anytime you are requesting details from a possible seller online.

匿名 2018年12月29日 at 下午1:03 - 回复

С Новогодними всех!
Попался на глаза мне недавно один интересный домашний цветок, но толком не знаю какой это цветок, сфотографировать в тот раз не смогла его, а с владелицей пообщаться не удалось, по всем приметам и по описанию перерыла весь инет и наверное это все-таки Геснера, но утверждать не берусь. Вобщем вся в раздумьях и догадках, а информации о этом цветке в интернете не много нашла. Может есть у кого этот цветок, расскажите пожалуйста какой уход требуется, температуру какую любит, как часто поливать и все подробности о уходе за ним. Или еще такой вопрос, если вдруг это окажется ни Геснера и я не найду этот цветок больше, то можете посоветовать, какой комнатный цветок выращивать в будущем году?

匿名 2018年12月26日 at 下午2:02 - 回复

Hi I am so delighted I found your weblog, I really found you by error, while I was researching on Google for something else, Regardless I am here now and would just like to say kudos for a incredible post and a all round enjoyable blog (I also love the theme/design), I don’t have time to browse it all at the moment but I have saved it and also added in your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the superb b.

RedMaster 2018年12月24日 at 上午2:19 - 回复

Говорят на криптовалюте Sibcoin можно стать миллионером. Как считаете, есть смысл купить данной криптовалюты? С Биткоином я свой шанс уже упустил.

They say the cryptocurrency Sibcoin can become a millionaire. Do you think it makes sense to buy this cryptocurrency? With Bitcoin, I already missed my chance.

发表评论或回复 取消回复

邮箱地址不会被公开。

+ 20 = 22

近期文章

  • OC UIWindow setRootViewController切换界面引发的内存问题
  • iOS证书、AppId、PP文件之间的关系
  • SVN服务器搭建、备份及多服务器同步方案(Windows)
  • [转]iOS多线程-各种线程锁的简单介绍
  • Mac 下Apache2 配置多虚拟主机

近期评论

  • NARYTHY288954NEYRTHYT发表在《ASP.NET整合Discuz PHP站 并实现用户同步》
  • nym402059flebno发表在《ASP.NET整合Discuz PHP站 并实现用户同步》
  • nem2182758krya发表在《ASP.NET整合Discuz PHP站 并实现用户同步》
  • aresgrb.se发表在《ASP.NET整合Discuz PHP站 并实现用户同步》
  • Vincenturbam发表在《ASP.NET整合Discuz PHP站 并实现用户同步》

分类目录

  • ASP.NET (15)
  • Git (2)
  • HTML (1)
  • iOS (31)
  • Javascript (7)
  • Oracle (8)
  • SQL (3)
  • SQLSERVER (2)
  • SVN (1)
  • 一行代码系列 (5)
  • 微信小程序 (1)
  • 正则表达式 (2)
  • 网站建设 (5)

文章归档

  • 2018年12月 (1)
  • 2018年4月 (1)
  • 2017年12月 (2)
  • 2017年7月 (3)
  • 2017年6月 (1)
  • 2017年4月 (1)
  • 2017年1月 (1)
  • 2016年12月 (3)
  • 2016年10月 (1)
  • 2016年7月 (1)
  • 2016年6月 (1)
  • 2016年5月 (3)
  • 2016年4月 (5)
  • 2016年3月 (4)
  • 2016年2月 (2)
  • 2016年1月 (3)
  • 2015年12月 (11)
  • 2015年11月 (7)
  • 2015年10月 (3)
  • 2015年9月 (1)
  • 2015年8月 (1)
  • 2015年7月 (1)
  • 2015年6月 (1)
  • 2015年5月 (1)
  • 2015年4月 (1)
  • 2014年7月 (1)
  • 2014年6月 (1)
  • 2014年5月 (2)
  • 2014年4月 (2)
  • 2014年3月 (2)
  • 2014年2月 (2)
2025年5月
一 二 三 四 五 六 日
« 12月    
 1234
567891011
12131415161718
19202122232425
262728293031