Monday-Friday, 9:00-17:00 +19056243686
header-image

Tab Tu

YOLO

You Only Live Once

feature image

天主教、基督教、犹太教、伊斯兰教的关系与区别


三、天主教、东正教、基督教(即指基督新教)的主要联系和区别
联系:
1.基督教是一个总称,天主教、东正教、基督新教是三大分支,在我国习惯上称基督新教为基督教。
2.三者都相信耶和华是唯一真神、耶稣基督是救世主。
3.三者都相信原罪,相信基督的死为世人赎了罪。
4.三者都相信世界将有末日,届时所有人将复活,接受神(天主、上帝)的审判。
5.三者都以《圣经》即新约旧约为经典。

区别:
1.历史不同。最初基督教只有一个教会,1054年西部、东部教会分裂,以罗马为中心的西部教会自称“公教”即天主教,以君士坦丁堡为中心的东部教会称“正教”即东正教。16世纪,西欧和北欧发生宗教改革运动,从天主教中分离出革新教会,统称基督新教。

2.教会形式不同。天主教至今仍保留统一的教会,自称“至圣、至公、至一,从宗徒传下来的教会”,罗马教廷为世界天主教中心。东正教原有以居士坦丁为中心的统一教会,随着东罗马帝国的灭亡,各国教会不相统属,但驻在今天土耳其伊斯坦布尔的君士坦丁牧首保留“普世牧首”的称号。新教从产生即无统一教会,主要的新教派别有加尔文宗、路德宗、英国国教(圣公会)等。

3.宗教语言不同。天主教以拉丁语为宗教语言,但现在也允许各地以民族语言祈祷。东正教最初以希腊语为宗教语言,但因为现在已不存在统一的东正教会,所以一般用各民族语言。新教从产生之日即主张用各民族语言为宗教语言。

4.对教会与神职的认识不同。天主教、东正教认为,人必须通过教会并由神职人员才可以与神沟通,故教会与神职具有神圣性。新教则认为,人可以凭借信仰与神沟通,不必通过教会与神职人员,教会只是教徒的团体,神职只是承担教会工作的教徒。

5.对神职的要求不同。天主教的神职人员不可以结婚。东正教原也如此,但现在已不严格。新教的神职完全可以结婚。天主教、东正教神职须为男性,女性只可为修女。新教女性也可以为神职。

6.神职的称谓不同。天主教为教宗(教皇)、枢机主教(红衣主教)、主教、神父。东正教为牧首、神父。新教称牧师、长老(加尔文宗)、主教。关注微信“环太咨询-大海 旅游 人”

7.对圣母、圣徒的认识不同。天主教、东正教崇拜圣母玛利亚和圣徒,教堂设圣母、圣徒像。新教认为圣母、圣徒都是人,不能崇拜,设置圣像是偶像崇拜,有悖《圣经》。

8.圣事不同。东正教、天主教有7件圣事,即圣洗、坚振、圣体、告解、神品、终傅、婚配。新教只保留了两件圣事:圣洗、圣餐(圣体)。

9.仪式不同。天主教举行洗礼时采取注水式(往头上倒水),举行弥撒成圣体时用无酵饼,神职人员领圣体、圣血,信徒一般只领圣体,祈祷时划圣号以整个手掌在胸前自上而下、自左向右划十字。东正教举行洗礼时采取浸水式,举行弥撒成圣体时用发酵饼,神职人员和信徒领圣体、圣血,祈祷时划圣号以3个手指(拇指、食指、中指)在胸前自上而下、从右向左划十字。新教的洗礼一般是注水式,有时也采取浸水式,圣餐是纪念式的,不像东正教、天主教那样认为基督体血的真实临在,祈祷时不划圣号。

10.节日不同。东正教的一些节日与天主教节日大体相同,只是称呼上有区别。天主教的节日分为四大节日(也称四大瞻礼,即复活节、圣诞节、圣神降临节、圣母升天节)、一般节日(如耶稣升天节、主显节、天主圣三节、预报救主降生节、耶稣圣体圣血节、耶稣圣心节、普世君王节、圣母无染原罪节、天主之母节等等)、圣徒们的纪念日等,最大最重要的节日也是复活节。新教只有复活节和圣诞节。

11.历法不同。天主教、基督新教用公历。东正教用儒略历。

12.《圣经》的版本不同。东正教和基督新教对于旧约中的《多俾亚传》、《友弟德传》、《玛加伯传》(上、下)、《智慧书》、《德训篇》、《巴路克》认为是次经,不予收录。天主教则完全采用。故天主教版《圣经》比东正教、基督新教的《圣经》多7卷。

https://www.douban.com/group/topic/62212009/

基督教以旧约和新约为圣经,犹太教以旧约为圣经。基督教和犹太教同为旧约宗教所派生,共同相信一神论、创世论、旧约的先知。基督教和犹太教的不同之处在于,基督教相信耶稣是旧约所预言的弥赛亚,犹太教不信仰耶稣是旧约所预言的弥赛亚,犹太教认为旧约所预言的弥赛亚应该是一个能把犹太人从外族人统治之下解救出来的犹太先知、祭司、君王。 伊斯兰教于公元7世纪初由阿拉伯人穆罕默德创立。据说当年有位天使经常跑到穆罕默德面前,向穆罕默德说话,他把这些话记在心里,传给他的门徒们,门徒一一记录下来,形成了《古兰经》。 《新约》和《古兰经》对《旧约》的教义都有所继承,它们都相信一神论和神创造万物。不同的是,基督教的一神论是三位一体的一神论,相信神是圣父、圣子、圣灵三位一体的神,三位同尊、同荣、同质,原为一体,分为三位(圣子在万世以前为圣父所生,圣灵在万世以前由圣父和圣子发出),又为一个整体。圣子在两千年前在童女马利亚腹中被怀孕,诞生成为人,就是耶稣。他在以色列地区传播上帝之道,赢得众多民众跟随,却被犹太当局误解为他想聚众造反,自立为王。当局就逮捕了他,交罗马兵钉十字架。耶稣在十字架上舍命,流血,完成了上帝对人的救赎。他死后三天复活,向门徒显现,证明了他是神,是圣父的独生子,并应验了《旧约》对于基督的预言。《新约》继承了《旧约》献祭赎罪的思想和传统,指出耶稣基督就是神所赐的替人赎罪的羔羊。人是神所造的,也只有神降生成为人才能够救赎人。耶稣受难,复活是他的门徒亲眼所见,亲手所摸的事实。《新约圣经》是耶稣的门徒根据自己所见和所经历的事件,写下的耶稣的生平事迹,他们为了见证他们所言,不惧承受逼迫,不惜牺牲生命,容不得千百年后的任何人无凭无据地否定。基督教是神亲自启示的宗教。只有基督教才是《旧约》宗教和《旧约》真理的真正继承者。 伊斯兰教的一神论是神格一位论,认为耶稣只是一个人,一个先知。 希伯来文神(ELOHIM)是一个复数名词,《旧约》中神以“我们”自称(创1:26,3:22)。诗45:6~7 “6 神啊,你的宝座是永永远远的,你的国权是正直的。7 你喜爱公义,恨恶罪恶,所以神,就是你的神,用喜乐油膏你,胜过膏你的同伴。” 第6节中的神指圣子(来1:8),第7节中的神指圣父,圣父膏圣子,圣子是受膏者,“受膏者”希伯来语是弥赛亚,希腊语是基督。 圣父要圣子坐在圣父的右边(诗110:1)。圣父差遣圣子和圣灵来(赛48:12,16)。 新约更加清楚地启示了上帝是三位一体的上帝:约1:1 “太初有道,道与上帝同在,道就是上帝。”道(圣子)与上帝(圣父)同在,说明圣父是一位,圣子是一位,圣父、圣子太初就在一起。“道就是上帝”,说明圣父、圣子为一体。太3:16~17 清楚说明了神的三个位格:“耶稣受了洗,随即从水里上来。天忽然为他开了,他就看见神的灵仿佛鸽子降下,落在他的身上。从天上有声音说,这是我的爱子,我所喜悦的。”圣子耶稣受洗,圣灵降在圣子耶稣身上,圣父在天上说话。彼得认耶稣为基督为神的儿子后,立刻得到耶稣的肯定和赞扬(太16:15~19)。耶稣被捕受审时,大祭司问耶稣:“我指着永生神叫你起誓告诉我们,你是神的儿子基督不是?”耶稣肯定地回答说:“你说得是,然而,我告诉你们,后来你们要看见人子坐在那权能者的右边,驾着天上的云降临。”(太26:63~64) 使徒保罗指出,耶稣基督本有神的形象,与神同等,降生成为人,施行救赎(腓2:6~11)。 耶稣说:“我就是道路、真理、生命,若不借着我,没有人能到父那里去。”又说:“你们往普天下去,传福音给万民听,信而受洗的必然得救。”不论你是一神论者还是多神论者或是无神论者,你因为罪的缘故与独一永生的上帝分开了,人认识到有一位上帝还不够,还必须相信耶稣,才能与上帝和好,有上帝的生命和圣灵。耶稣是上帝派遣的唯一的救世主。犹太人本来是相信上帝的,但他们由于原罪本罪的缘故,与神分离,他们必须相信耶稣才能得救,才能与神和好。使徒保罗指出,以色列人和世人在基督降生以前是受管于世俗小学之下(加4:3~4),“世俗小学”一词在现代中文译本圣经中被翻译为“宇宙间所谓的星宿之灵”,即天使,基督降世就是要把我们从这种状态下救赎出来,使我们归向父上帝。犹太人曾对耶稣說:“我们是亚伯拉罕的后裔。我们只有一位父,就是神。”(约8:33,41) 这表明他们知道他们是神的选民,他们也知道神是独一的真神,是他们的父,他们对神的这种认识是正确的。但耶稣对他们说:“倘若神是你们的父,你们必爱我,因为我本是出于神,也是从神而来。你们是出于你们的父魔鬼,你们的父私欲。”(约8:42,44) 耶稣指出了他们的罪,告诉他们,只有认识耶稣,才能真正认识神,只有信靠耶稣,才能罪得赦免,与神和好。

广义上说,基督教包括天主教、东正教和新教;狭义上说,基督教专指新教。基督教诞生以后,不断向外传播,虽然遇到犹太当局和罗马当局的多次迫害,仍然能够发展壮大,从耶路撒冷起,传遍犹太全地,乃至整个罗马帝国,并于4世纪成为罗马帝国的国教。由于4世纪末罗马帝国分裂,帝国境内的文化民族差异和教权上追求平等,于11世纪正式形成以罗马城为中心的天主教和以君士坦丁堡为中心的东正教;于16世纪以后,从德国的修士马丁·路德开始,又从天主教中分裂出新教,新教包括信义会(始于德国)、归正会(始于瑞士)、圣公会(始于英国)等许多教派。新教各教派组织上互相独立,信仰上大同小异。

天主教、东正教和新教在教义上的差别是微小的,这种差别应该从他们发展的历史中来理解。他们共同的信仰就是使徒信经和尼西亚信经。 使徒信经 我信上帝,全能的父,创造天地的主。我信我主耶稣基督,上帝的独生子;因着圣灵感孕,从童贞女马利亚所生;在本丢彼拉多手下受难,被钉在十字架上,受死,埋葬;降在阴间;第三天从死里复活;他升天,坐在全能父上帝的右边;将来必从那里降临,审判活人,死人。我信圣灵;我信圣而公之教会;我信圣徒相通;我信罪得赦免,我信身体复活;我信永生。阿们! 尼西亚信经 我信独一上帝,全能的父,创造天地和有形无形万物的主。我信独一主耶稣基督,上帝的独生子,在万世以前为父所生,出于神而为神,出于光而为光,出于真神而为真神,受生而非被造,与父一体,万物都是借着他造的;为要拯救我们世人,从天降临,因着圣灵,并从童女马利亚成肉身,而成为人;在本丢彼拉多手下,为我们钉于十字架上,受难,埋葬;照圣经第三天复活;并升天,坐在父的右边;将来必有荣耀再降临,审判活人死人;他的国度永无穷尽;我信圣灵,赐生命的主,从父和子出来,与父子同受敬拜, 同受尊荣,他曾借众先知说话。我信独一神圣大公使徒的教会;我认使罪得赦的独一洗礼;我望死人复活;并来世生命。 天主教和东正教的形成: 天主教又称为罗马公教(即罗马普世教会),她特别强调:全世界的教会应建立一个以罗马城的教会为中心,以罗马教宗(即教皇)为教会最高领导者的统一的大组织。其理论依据为:罗马城的教会是耶稣的大使徒彼得创立和领导的,彼得是罗马教会的首任主教,罗马教会以后每任主教是大使徒彼得的继承人,而其他地区的教会是其他使徒建立的,其他地区教会的主教是其他使徒的继承人,他们都应该服从坐在大使徒彼得位子上治理全世界教会的罗马主教(教宗)。主耶稣曾在彼得认耶稣是基督是上帝之子后对彼得说:“你是彼得,我要把我的教会建造在这磐石上,阴间的权柄不能胜过他。我要把天国的钥匙给你,凡你在地上所捆绑的,在天上也要捆绑;凡你在地上释放的,在天上也要释放。”(太16:18~19) 罗马教会认为这段经文意味着主耶稣要把普世教会建立在彼得这块磐石上,并把管理普世教会的大权交给了彼得。但罗马教会只是统一了西罗马帝国的教会,一直未能统一东罗马帝国的教会。未能统一的原因与其说是因为教义上和礼仪上的分歧,倒不如说是因为政治、文化、语言、民族、教权上的原因:4世纪末罗马帝国已分裂为东西两个帝国,东罗马帝国(又称为拜占庭帝国)的皇帝不会赞成其境内的教会(即东正教,意为东部正统教会)屈从西罗马境内的教会(天主教),东罗马的教会出于教会平等的意识,也不愿屈从教皇(即教宗)的权威。他们或许认为,彼得虽曾被称为大使徒,但从新约圣经所记载的教会历史来看,彼得从始至终都未取得对整个教会的统治权,所以罗马主教也不应该获得对整个普世教会的统治权;主耶稣所说的“这磐石”指的是彼得认耶稣为基督为上帝之子的信仰,而不是指彼得本人;主所赐的权柄不仅仅给彼得,也给认耶稣为基督为上帝之子的所有使徒们。西罗马文化为拉丁文化,讲拉丁语;东罗马文化为希腊文化,讲希腊语。 东罗马帝国境内的教会形成了4个教区,即君士坦丁堡教区、亚历山大里亚教区、安提阿教区和耶路撒冷教区。君士坦丁堡为东罗马帝国首都,君士坦丁堡教区亦成为4教区之首。后来东罗马帝国被穆斯林入侵,君士坦丁堡教区主导地位式微,4教区成为自主的东正教会。东正教向其他国家(主要是东欧国家)传播和发展,并成为俄国国教,俄国东正教会逐渐形成以首都莫斯科的教会为首的局面。莫斯科东正教会在普世东正教会中的地位也十分重要。 新教的产生: 16世纪初,罗马教庭欲在梵蒂冈建圣彼得大教堂,为了筹集资金,教庭向西欧各国的教会出售赎罪券,并宣称买赎罪券的信徒的罪才能够被上帝赦免。此行动和教义在德国受到修士马丁·路德的置疑,他认为信徒只要相信耶稣,就可蒙神赦罪,因为耶稣已在十字架上担当信徒们的罪,人只要向他祷告,认罪,相信他,人的罪就可被上帝赦免,因信称义,而不是靠购买赎罪券称义。教皇得知此事后,下令叫马丁·路德认罪,并收回己见,遭到马丁·路德拒绝。教皇开除路德的教籍,路德于是脱离教廷,与他的支持者们(其中有一些德国的诸侯)一起在德国建立了一个独立于教廷的新的教会,也是新教的第一个教会(即教派或宗派),称为路德宗(或信义会,因为强调因信称义)。这一行动史称“宗教改革”。马丁·路德强调以下三点: 1)信徒因信称义,不因买赎罪券称义; 2)圣经为教会的最高权威,教皇或教会大公会议(即普世主教会议)都不是教会的最高权威; 3)一般信徒都可以向神祷告,与神沟通,通过祷告,读圣经领受神的启示和带领,通过向神认罪,获得神的赦免,不需要以神职人员为神和人之间的中介。 后来,加尔文受马丁·路德的影响,在瑞士从事宗教改革,使瑞士教会脱离教廷统治,建立了归正会(即加尔文宗)。加尔文创立了长老制的教会组织体制,由一个教会的全体信徒选举该教会的长老,再由长老选举或聘请牧师共同管理教会,牧师主要负责宗教事务;再经过地区教会和一国教会的分层选举,组成地区的教会和一国的教会。加尔文的长老制为西方国家的民主制度奠定了基础。英国国王为了加强王权,也宣布英国教会脱离教廷而独立,建立圣公会(即安立甘宗)。实行主教制,由坎特伯雷的大主教管理全英国的圣公会。后来,从以上教会中又出现新的宗教改革,产生了许多新的教派。在英国,这类新的教派多为清教徒,常常受到英国政府和英国圣公会的迫害。清教徒为了逃避迫害,远渡大西洋,到北美大陆谋生。英国政府在北美设立了殖民政府,对殖民地人民征收大量苛捐杂税,引发殖民地人民的独立战争,最终以殖民地人民取得战争胜利而告终,美国由此诞生。 新教与天主教的差别: 组织上天主教强调统一,以教皇为最高领导人,以梵蒂冈为中心。有些新教的信徒认为天主教既然以教皇为最高领导人,那么天主教会的头或元首就是教皇而不是基督。这是一个误解,因为任何教会都会有个负责人,照他们的逻辑,可以说任何一个教会的头或元首是该教会的负责人,而不是基督。这显然是荒谬的推理。一个国家的天主教会一般是由教皇任命的红衣(枢机)主教管理。教皇是终身制。每任教皇由枢机主教开会,进行淘汰制选举产生。新教是分散的、多元、多组织、教派之间互相独立。教义上天主教和东正教敬重马利亚,祷告有时求玛利亚转告耶稣。新教无此观念和传统。礼拜仪式上天主教、东正教较为复杂。东正教主教、天主教神职人员须实行独身制,新教神职人员可以结婚。 全世界不会只有一个国家、一个民族、一种语言、一种思想、一种文化,同样,基督教在世界上在历史上也不会只有一个组织。任何宗教、任何组织、任何理论都会出现多种流派。任何人、任何教会,只要相信并传扬悔改、信耶稣得救的福音,就是走对了道路,得到了真理,接受了生命。除了耶稣以外,并没有别的道路、真理、生命。天主教会、东正教会和新教的教会都是主耶稣身体上的肢体,他们本身都不是道路、真理、生命。地上的教会历来都不是完美和圣洁无瑕的,乃是在与罪恶争战过程中靠主救恩走向圣洁完美。在主耶稣在世的时代,教会的12使徒中,就有一个叛徒犹大。使徒时代的教会,出现了这样或那样的问题和错误,在新约使徒的书信中,有详细的描述和记载。难道能因此说主耶稣时代的教会和使徒时代的教会都是不正统的?当今的每一个教会也不是完美无缺的,也会出错,不能因此说,教会不正统。关键是教会要彼此交通,互相帮助,改正错误,连于教会的元首基督,一同长进。使徒保罗告诫我们:“要用水借着道把教会洗净,成为圣洁。”(弗5:26) 从发展的趋势上看,基督教会之间应彼此尊重,扩大交往,求同存异,迈向合一,共同为主耶稣作美好的见证,引领万人归主。 教会合一是指教会在真道上、在基督里、在爱中的合一,指教会之间彼此谦卑,彼此接纳,彼此交流,一同长进,连于基督,不在于组建一个组织统一的大教会。只要我们有圣灵所赐合而为一的心,并赋予实施,教会在真道上的合一是可以实现的。基督教组织形式有三类:主教制(从天主教承袭)、长老制(16世纪由加尔文创立)、公理制(又称为会众制,16世纪由罗伯特·布朗创立)。主教制是从上到下分层构建教会组织(类似君主制),长老制从下往上由会众以民主选举的方式分层建立教会组织(为西方民主政体奠定了可以借鉴的模式)。公理制的特点则是一个教会的牧师和负责人由该教会会众选举产生,教会之间互相独立,互相联系,并设立联系机构。 “教会”一词来自希腊语ekklesia,此词的含义即“被呼召出来”,表明了教会是被神呼召出来,由耶稣基督亲自创立并蒙耶稣基督救赎的一群人,基督是教会的头,教会是基督的身体。教会既是一个整体,又由众多的肢体构成;既是圣洁的,又是不完美的甚至是容易出现错误的;既是普世的和全人类的,又是地方的和民族的;既是自耶稣和使徒们代代相传且存在于历史和现实中的,又是超越时空存在于天堂里,围绕在神的宝座周围的;既具有神圣性,又具有世俗性;既以无形的基督精神为本,又以有形的组织结构为体。因此,教会是一个包含着神为因素和人为因素的复杂的对立统一体。教会的神圣性即神为因素是由于教会是由基督救赎和由圣灵时时引导及圣化的,教会的使命是耶稣基督在世使命的延续:遵循基督的教训,传扬福音,领人归主;牧养信徒,使众信徒在真道上同归于一,认识神的儿子,得以长大成人,满有基督长成的身量;施行圣礼,传递救恩;彰显公义,谴责邪恶;服务众人,造福社会。教会的世俗性即人为因素是由于教会存在于世俗社会中,受着社会的制约和影响,教会又是由成圣过程中不完美甚至带着罪的人们(教会的领袖们和平信徒们)组成,其组织结构、管理模式、行为方式、神学认知不可避免地带有不完美性或世俗性或错误性。因此,教会的神圣性和世俗性总是处于一种既对立又统一的关系之中,说它们统一,是因为教会的神圣性是由带有世俗性的教会体现的;说它们对立,是由于带有世俗性的教会不能总是体现神圣性,有时体现出世俗性或出现错误性。总之,教会是在成圣过程中不完美的教会,直到基督再来,新天新地降临时,教会才预备整齐,由于基督的救恩和大能,成为圣洁的童女,作基督的新妇。

feature image

The Elder Scrolls Online

https://vstab.com/build/#f3,r12,c16,144:1,145:3,146:3,147:3,169:1,171:3,172:2,173:2,174:2,175:2,179:3,180:2,181:2,281:1,299:1,304:3,306:1,365:1,368:1,374:1,376:1,378:2,379:2,380:2,381:2,382:2,445:1,454:1,457:1,458:2,459:2,460:2,461:2,462:2,630:1,636:1,640:1,645:1,647:2,648:2,649:2,650:2,656:1,658:1,668:1,669:2,670:2,671:2,672:2,674:1,686:1,692:2,693:2,716:1,745:1;658:299:636:656:457:630;365:668:376:645:281:745;30;0,0,64;0,0,0;12:4,15:30,16:48,18:43,19:40,20:43,31:32,36:66,45:64,53:11,56:72,57:27,61:15,67:72,75:30,76:75,80:48,;240,240,240;6,1;

Flanking StrategistGold Coast, overland2 items: Adds 25-1096 Maximum Stamina
3 items: Adds 19-833 Weapon Critical
4 items: Adds 3-129 Weapon Damage
5 items: Adds 34-400 Weapon Damage to your damaging abilities when you attack an enemy from behind or their sides.
Strength of the AutomatonDarkshade Caverns, dungeon2 items: Adds 19-833 Weapon Critical
3 items: Adds 25-1096 Maximum Stamina
4 items: Adds 3-129 Weapon Damage
5 items: Adds 9-400 Weapon Damage to your Physical Damage abilities.
Shield BreakerImperial City2 items: Adds 25-1096 Maximum Stamina
3 items: Adds 3-129 Stamina Recovery
4 items: Adds 3-129 Weapon Damage
5 items: Increases your damage done by 6%. This effect is doubled when attacking targets with a damage shield active.
Spriggan’s ThornsBangkorai, overland2 items: Adds 25-1096 Maximum Stamina
3 items: Adds 25-1096 Maximum Stamina
4 items: Adds 3-129 Weapon Damage
5 items: Adds 80-3460 Physical Penetration

ref:

feature image

CORE3.1 add CORS support

Setting up CORS

To setup CORS for your application you use the Microsoft.AspNetCore.Cors package. In your project.json file, add the following:

  "dependencies": {
    "Microsoft.AspNet.Cors": "6.0.0-rc1-final",
  },

Add the CORS services in Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors();
}

Enabling CORS with middleware

To enable CORS for your entire application add the CORS middleware to your request pipeline using the UseCors extension method. Note that the CORS middleware must precede any defined endpoints in your app that you want to support cross-origin requests (ex. before any call to UseMvc).

You can specify a cross-origin policy when adding the CORS middleware using the CorsPolicyBuilder class. There are two ways to do this. The first is to call UseCors with a lambda:

public void Configure(IApplicationBuilder app)
{
    app.UseCors(builder =>
        builder.WithOrigins("http://example.com"));
}

The lambda takes a CorsPolicyBuilder object. I’ll describe all of the configuration options later in this topic. In this example, the policy allows cross-origin requests from “http://example.com” and no other origins.

Note that CorsPolicyBuilder has a fluent API, so you can chain method calls:

app.UseCors(builder =>
    builder.WithOrigins("http://example.com")
           .AllowAnyHeader()
    );

The second approach is to define one or more named CORS policies, and then select the policy by name at run time.

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy("AllowSpecificOrigin",
            builder => builder.WithOrigins("http://example.com"));
    });
}

public void Configure(IApplicationBuilder app)
{
    app.UseCors("AllowSpecificOrigin");
    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Hello World!");
    });
}

PS: app.UseCors() should be set between Routing and Endpoints

configure your application startup by adding app.UseCors() inside the call to Configure(..) in the application startup code. The call to app.UseAuthorization() must appear between app.UseRouting() and app.UseEndpoints(…).

https://jakeydocs.readthedocs.io/en/latest/security/cors.html#setting-up-cors

feature image

Init react, react-bootstrap, react-router-dom

Setting up a React Environment

If you have NPM and Node.js installed, you can create a React application by first installing the create-react-app.

If you’ve already created the create-react-app you can skip this section.

Install create-react-app by running this command in your

npm install -g create-react-app

Then you are able to create a React application, let’s create one called myfirstreact.

Run this command to create a React application named myfirstreact

npx create-react-app myfirstreact

The create-react-app will set up everything you need to run a React application.

Setting up react-bootstrap, react-router-dom into Environment

we need to install some libs into environment

npm install --save react-bootstrap
npm install --save react-router-dom
npm install --save styled-components

PS: Comparing bootstrap vs. react-bootstrap vs. reactstrap

https://npmcompare.com/compare/bootstrap,react-bootstrap,reactstrap

feature image

AspCore.Swagger is too slow

Are you using NewtonSoft? You need to add:

Install-Package Swashbuckle.AspNetCore.Newtonsoft -Version 5.1.0

And add:

services.AddSwaggerGenNewtonsoftSupport();
// explicit opt-in - needs to be placed after AddSwaggerGen()
feature image

Stain & Finish

In a wood working, we need to understand Stain and Finish.

Stain, give the wood a nice surface looking oil stain. It will change wood colour, do not have enough protection with the lumber or board. We usually use stain to give the wood a rice and great colour on surface. Beside, we can use different colour in opposite sides with designing.

Finish, build a protection level on the surface. We have many different choices in this kind, such as, Polyurethane, Oil-Based, Water-Based, Lacquer, Varnish and Shellac. Choose the right finish on different project. https://www.tabtu.top/?p=897

feature image

Types of Wood Finish

Polyurethane(聚氨酯)

Highly durable, water-resistant. Provides a natural appearance; available in satin, semi-gloss and glossy sheens. Ideal for kitchen cabinets, doors, furniture and floors. Not recommended for outdoor use; may yellow or crack when exposed to sunlight unless UV light absorbers are added. Can be difficult to repair if damaged.

Polyurethane wood finishes are synthetic coatings that prove highly durable and water resistant, making them the best clear coat for wood protection. 

  • They provide a natural appearance with a variety of satin, semi-gloss and glossy sheens and are ideal for kitchen cabinets, doors, furniture and floors, but not recommended for outdoor use. 
  • They may yellow or crack in sunlight unless formulated to be UV-resistant.

Oil-Based

Dries slowly. Provides a rich, satin finish. Ideal for furniture and low-traffic areas; shows water or alcohol spills. Easy to apply with a brush or cloth.

Oil-based finish dries more slowly and has a stronger aroma than water-based finish. 

  • It is ideal for furniture and low-traffic areas but shows water or alcohol spills. 
  • It is easy to apply with a brush or cloth. 

Water-Based

Dries quickly. Can be used on bare, stained or painted wood; does not yellow with age. Ideal for protecting decorative finishes; not as durable as other finishes. Use synthetic brushes to apply, as brush marks may show up on surface.

Water-based finish dries quickly and can be used on bare, stained or painted wood. 

  • It provides a clear, natural sheen that does not yellow with age. 
  • Ideal for protecting decorative finishes, it is not as durable as other finishes. 
  • Synthetic brushes are recommended for application. 

Lacquer(漆)

Dries faster than other finishes; usually sprayed on. Can be easily removed. Ideal for furniture. Works well when multiple layers are applied, but do not use over old paint or varnish. Gives off noxious fumes when applied; can be a fire hazard.

Lacquer is a wood finish typically made with a solution of nitrocellulose and solvents to make a glossy or matte coating.

  • Frequently sprayed on, it leaves a thin coat that dries faster than other finishes.
  • It can give off strong fumes when applied, so apply in a well-ventilated area and take necessary precautions.
  • It is ideal for furniture but is not recommended for use over old paint or varnish.
  • Lacquer is more durable than shellac. It is considered one of the best wood sealants.

Varnish(清漆)

Very durable. Can be used on bare or stained wood. Ideal for use on doors and marine finishes. Must be applied to a dust-free surface with a clean brush. Use paint thinner for thinning and cleaning.

Varnish wood finishes tend to consist of a resin, a drying oil and a solvent or thinner. 

  • Varnishes are usually clear, highly durable and offer UV protection, making them suitable for doors and marine finishes, whether on bare or stained wood. 
  • They are less expensive than polyurethane and are slow to dry, making them susceptible to dust and dirt. 
  • They are also considered among the best wood sealants.

Shellac

Provides a hard finish that dries quickly; may break down over time. May be used as a sealer and stain killer on drywall, cured plaster and new wood. Ideal for furniture and floors. Not recommended for wood that will be exposed to moisture. Use denatured alcohol to thin and clean.

Shellac wood finish is made from a protective waxy resin secreted by the lac insect. 

  • It is mixed with a solvent, such as alcohol, that makes it easy to apply as it dries quickly, but it may need to be thinned before applying. 
  • It provides a hard finish suitable for floors, antiques and fine furniture. 
  • It is not recommended for wood that will be exposed to moisture or alcohol spills, as it may dissolve or break down over time. 
feature image

IIS forward request(转发请求)

最近部门要开发一个简单的APP,部分数据是现有项目已经存在的,为了方便维护,希望只提供一个交互的入口,并且协议的规则不变。

基于这个需求,有两套解决方案:

1.用代码将现有的api封装一层,对请求数据和返回数据不做任何改变,只是中转,然后和新的数据接口一起部署在一个项目里;

2.用IIS进行请求转发,调用现有接口回应请求,剩余部分开发新的api,部署在一个项目里,用URL Rewrite进行过滤分发。

第一个方案很传统,没什么好评价的,这里主要讲一下第二种方案的实现,第二个方案的好处是可以节省时间成本,需要依赖IIS插件(Application Request Routing + URL Rewrite)。

先下载ARR 和 URL Rewrite 进行安装,使用过程中发现ARR对IIS的“目录浏览”功能有依赖(未验证,如果无法使用,可以查看一下是否安装了“目录浏览”功能):

http://www.iis.net/downloads/microsoft/application-request-routing#additionalDownloads
http://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads

安装好插件,重新打开IIS

双击IIS根目录

双击Application Request Routing Cache

双击右边的 Server Proxy Settings

勾上 Enable proxy

取消勾选“Reverse rewrite host in response headers”,否则所有的响应内容的host都会被重写为当前站点域名,简单来讲,最直接的影响就是对外部站点的重定向都会失败,所以这里取消勾选。

点击“应用”后,新建一个站点,用来接受请求做转发

双击站点,双击 URL Rewrite -> Add Rules(新建规则) -> Blank rule(空白规则) 

Name:填写你的规则名称

Match URL 是匹配Requested URL的规则

http://www.test.com?name=michael&age=30

host: www.test.com

requested url: ?name=michael&age=30

query string: name=michael&age=30

Requested URL 选择 Matches the Pattern (匹配符合规则的url)

Using 选择 Regular Expressions (使用正则表达式来匹配)

Pattern 里填写 ^(.*) 这里不对正则表达式做讲解,有需要的可以自己了解。

勾选 Ignore case 忽略大小写

展开 Conditions 条件筛选

Logical grouping 选择 Match Any

Match All 是列表中所有规则都要匹配才符合(与)

Match Any 是列表中有一个规则匹配就算符合(或)

track capture group across conditions 跟踪捕获组,这个功能跟正则有关,这里不需要不勾选,可以查询关键词 capture group  自行了解详情

点击 Add 添加条件 

Condition input 填写  {HTTP_HOST}  ,HTTP_HOST 代表请求头里的host,就是上面例子里的 www.test.com 部分, 更多可过滤条件查询 Server Variables  自行了解

Check if input string 选择 Matches the Pattern 

Pattern 填写 ^arrtest.com$  ,这里的意思是如果host是 arrtest.com 则匹配通过,例:http://arrtest.com?asdf=1234

如果这里填写的是 ^www.arrtest.com$  ,则匹配 http://www.arrtest.com?asdf=1234

勾选 Ignore case 忽略大小写

双击展开 Action 部分

Action type 选择 Rewrite 重写转发

Rewrite URL 里填写 https://cn.bing.com/{R:1} 转发目标地址, {R:1} 代表 Match URL 部分匹配到的 Request URL 

勾选 Append query string 追加查询字符串 

到此配置结束,保存这个规则,在浏览器访问 http://arrtest.com/search?q=测试 就等同于访问 https://cn.bing.com/search?q=测试  

为了防止该站点下的其他接口被这个规则无脑转发,我们需要新增一个转发条件

现有的需要转发的 API 格式如下 http://arrtest.com?PROTOID=123456 

其他接口是没有 PROTOID 这个关键词的,并且 PROTOID 后面的value都是数字,那么这里就用这个关键词来过滤需要转发的请求

再回到刚刚的 Conditions 部分,点 Add 新增条件

Condition input 填写 {QUERY_STRING} 

Check if input string 选择 Matches the Pattern

Pattern 填写 PROTOID=\d+ 这个规则的意思是,匹配查询字符串为 PROTOID 开头参数值为数字的请求(例:http://arrtest.com/?PROTOID=456789)

勾选 Ignore case 忽略大小写

确定保存,修改 匹配逻辑为 Match All (与),列表内所有的规则都匹配,请求才会通过

现在只有 QueryString 为 PROTOID 开头参数值为数字的请求才会被转发了

例子:http://arrtest.com/search?PROTOID=4564&q=测试   =>   http://cn.bing.com/search?PROTOID=4564&q=测试

http://arrtest.com/search?q=测试&PROTOID=4564  则不会被转发 

至此请求转发的功能就实现了,除此之外,强大的 ARR + URL Rewrite 还可以实现高可用负载均衡。

https://www.cnblogs.com/mahatmasmile/p/5725253.html

feature image

CORE return HttpResponseMessage

在.net framework下我们编写webapi时返回一般会用到HttpResponseMessage类型,如果返回值什么内容调用此api就能返回什么值了。但是在.net core下我们用HttpResponseMessage来当做返回值得话得到的结果可能就不是你想要的了,可能会出现一堆看起来没什么用的json返回值,如下所示就是我调用后的返回值

{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"key": "Content-Type",
"value": [
"text/plain; charset=utf-8"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"requestMessage": null,
"isSuccessStatusCode": true
}


其实我们可以安装.net core的webapi兼容包来实现的,通过nuget安装

Microsoft.AspNetCore.Mvc.WebApiCompatShim

然后在Startup中的ConfigureServices方法里在AddMvc()后增加AddWebApiConventions()就行了

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().AddWebApiConventions();
}


这时你再重新调用下webapi返回的值就是你程序里的返回值了。

附上.net core的相关组件清单,以便有用时查询

相关组件
ASP.NET Core MVC 包含了下列组件,基于 .NET Core 的精神,只有需要用到的才需要加入参考 (于 project.json),因此开发者可以自由选择,而不必把所有的组件都加进来。

  • Microsoft.AspNetCore.Mvc ASP.NET Core MVC 引用套件
  • Microsoft.AspNetCore.Mvc.Abstractions ASP.NET Core MVC 功能的抽象层
  • Microsoft.AspNetCore.Mvc.ApiExplorer ASP.NET Core MVC 的 API 文件支持
  • Microsoft.AspNetCore.Mvc.Core ASP.NET Core MVC 核心组件
  • Microsoft.AspNetCore.Mvc.Cors 提供 Web API 所需要的 CORS 能力
  • Microsoft.AspNetCore.Mvc.DataAnnotations MVC 所需的数据注解 (Data Annotation) 功能
  • Microsoft.AspNetCore.Mvc.Formatters.Json MVC/Web API 所需的 JSON 序列化器
  • Microsoft.AspNetCore.Mvc.Formatters.Xml MVC/Web API 所需的 XML 序列化器
  • Microsoft.AspNetCore.Mvc.Localization MVC 应用程序本地化支持
  • Microsoft.AspNetCore.Mvc.Razor MVC Razor 的核心类库 (若要在 MVC 中使用 Razor 就必须参考此组件)
  • Microsoft.AspNetCore.Mvc.Razor.Host MVC Razor 的运行时引擎
  • Microsoft.AspNetCore.Mvc.TagHelpers MVC Tag Helper 的核心类库
  • Microsoft.AspNetCore.Mvc.ViewFeatures MVC View 功能的类库 (Controller 类的操作在此)
  • Microsoft.AspNetCore.Mvc.WebApiCompatShim Web API 兼容套件
  • Microsoft.AspNetCore.Razor Razor 的核心类库

————————————————

原文链接:https://blog.csdn.net/sammy520/java/article/details/104581376

feature image

core MVC 默认大小写不敏感

对于.Net Core 3.1及以上版本, 默认使用json序列化/反序列化时对大小写不敏感. 设置大小写敏感, 在Startup.cs中添加:

            services.AddControllersWithViews().AddNewtonsoftJson(opt =>
            {
                // lazy mode json Serializer
                opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
                // donot up case the first letter
                opt.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
            });

一些简单配置如下.

public void ConfigureServices(IServiceCollection services)
{
     services.AddJsonOptions(options =>
            {
                //格式化日期时间格式
                options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());
                //数据格式首字母小写
                //options.JsonSerializerOptions.PropertyNamingPolicy =JsonNamingPolicy.CamelCase;
                //数据格式原样输出
                options.JsonSerializerOptions.PropertyNamingPolicy = null;
                //取消Unicode编码
                options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
                //忽略空值
                options.JsonSerializerOptions.IgnoreNullValues = true;
                //允许额外符号
                options.JsonSerializerOptions.AllowTrailingCommas = true;
                //反序列化过程中属性名称是否使用不区分大小写的比较
                options.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
            });
}