Register  |  
About the author
Baldwin's Status
 Contact Me
Baldwin Sun
Senior Developer for dnn solution & founder of SunBlog module...
Blog搜索
相册库
更多照片请查看相册库
最新评论
Rss Feed
feedsky
抓虾
pageflakes
newsgator
哪吒
我们的服务
  • DotNetNuke 咨询
  • Web设计及其模块开发
  • 免费建站
  • 电子商务
  • 开拓市场
我们致力于开发定制的web 2.0 ,所服务的客户主要包括小中型企业,社区俱乐部及其非盈利机构组织。我们将利用开源的DNN作为我们核心的系统机制,更多相关信息...

"暴力"解决DNN无法登陆的问题

大家也许看了我之前的一篇文章讲述如何定制DNN登陆页面的文章: 如何定制登陆页面,  然后尝试新建一个页面测试一下, 最后也许误删了该页面的Account Login模块(登陆模块)而导致了你的站点无法登陆, 这时我们怎么回滚这些设置呢? 遗憾的是, DNN并没有对此类问题提供什么好的操作界面或解决方案, 最后还得我们这些DNN Fans(Developer)来挖掘问题的出路和解决方案. 我想大家第一想到方案应该就是直接暴力修改数据库了, 对, 我想在此能分享的也就是暴力解决方案, 其中的原理很简单, 因为DNN默认登陆Url一般可通过这样得到http://yourwebsite/default.aspx?ctl=login (也是原始url, 没有任何Url Rewrite, 如果你深入研究会发现这一页面或是首页或是当前页面), 如果你按照我前边文章定制了登陆页面的话, 那无非就是Portal 的属性LoginTabId 修改为新的页面的TabID( 比如 100, 231), 这时当你点击登陆链接时DNN将根据站点设置跳转到对应的页面, 仔细研读下列代码可知其中奥秘:
 
  1. If PortalSettings.LoginTabId <> -1 And Request.QueryString("override"Is Nothing Then  
  2.         ' user defined tab   
  3.         Response.Redirect(NavigateURL(PortalSettings.LoginTabId, """returnurl=" & ReturnUrl), True)   
  4. Else  
  5.         ' portal tab   
  6.         If PortalSettings.HomeTabId <> -1 Then  
  7.             Response.Redirect(NavigateURL(PortalSettings.HomeTabId, "Login""returnurl=" & ReturnUrl), True)   
  8.         Else  
  9.             Response.Redirect(NavigateURL(PortalSettings.ActiveTab.TabID, "Login""returnurl=" & ReturnUrl), True)   
  10.         End If  
  11.     End If  
  12. End If  
好, 现在你应该也知道如何解决了吧, 有两种方式(都不是独创的, 直接Copy过来, 本着分享的原则, 详细请看相关链接):
1) 如果你有数据库权限, 那就执行这一SQL语句:
 
  1. Update Portals Set LoginTabId=NULL Where PortalId=xx /* xx代表你站点对应的PortalID, 一般是0 */  
最后记得清一下缓存(重启IIS或"修改"Web.config或其他类似方式)
2) 下载这一压缩包(OpenSesame.zip), 解压到站点根目录下, 然后通过Url访问这一文件( http://yourwebsite/OpenSesame.aspx )将自动更新Portal的LoginTabID为null, 从而达到回滚原始设置的目的, 最后记得把这一文件删除了 :) 

本站最新文章索引

为了便于大家直接查找,在此简单汇总一下本人一直以来对DNN研究的相关文章。另外,大家如果有关于DNN方面的问题,也可以在这里提出,我将尽力为大家解答。
第一部分为DNN模块方面, 主要分享一些在DNN模块需要注意的地方,比如如何利用DNN API,优化开发过程,也就是本人一直宣扬的让DNN“物尽所用”的原则:
1 ) DNN核心API简述
2 ) DNN模块开发之利器篇:七种武器
3 ) 开发DNN模块之Utility
4 ) DNN模块开发应用Ajax之Utility
5 ) 一些DNN须知的技巧
6 ) DNN特性之IMC
7 ) DNN Object Hydrator -- CBO解析
8 ) 王者归来—再谈CBO
9 ) 解析DNN新生宠儿DAL
10 ) 解除DNN的传参枷锁
11 ) 在DNN中处理回车键事件
12 ) 一些关于DNN的FAQs(适合New DNNer)
第二部分为DNN皮肤设计, 主要分享DNN皮肤这一概念背后的一些想法及其由此带来的性能优化问题,希望真正做到扬长避短, 同时也稍微涉及到一下在DNN如何设计专业的,符合标准的,纯CSS的皮肤等话题, 有兴趣者不妨参考参考。
1 ) DNN默认核心CSS继承关系解析
2 ) DNN Style Sheet简要总结
3 ) 解析DNN皮肤级别的doctype声明
4 ) DNN登陆注册链接小变身(Skin Object定制开发)
5 ) 展望DNN皮肤前景及其推荐一些皮肤资源
6 ) DNN Skin旅程之琐碎杂想
第三部分为DNN优化专题, 主要分享一些能提升DNN加载速度,优化DNN本身的架构等经验,同时希望大家能借此对DNN有更一步的深入了解, 因为当你在使用某一样产品时,在知道优势时也不妨多关注存在的缺陷和局限,这样你才能规避风险,找到合适的解决方案。
1 ) 你的dnn站点慢了么?
2 ) 如何在DNN创建类IGoogle效果的模块
3 ) 解析DNN新生宠儿DAL
第三部分为DNN最新资讯, 主要分享最新的DNN新闻资讯(比如最近即将发布的Cambrian版本的DNN 5.0)及其本站的一些更新,其中包括中国DNN联盟的最新活动等等.
1 ) Cambrian和Open Force '08专题(不断更新中,敬请关注) 
2 ) 中国DNN联盟正式成立
还有更多更多内容, 不妨关注一下本站,同时希望大家给予更多反馈, 我们会做得更多,而这一切的前提离不开社区的反馈和你们支持。 :)
最后分享一下我一直以来关注DNN社区所收集的Blog站点,其中包括一些很牛的DNN Fans对DNN的独到见解,还有一些就是DNN官方核心团队成员自己的Blog,毋庸置疑, 其所写的文章或随笔都是很有含金量的.很显然,整个关于DNN内容的社区在不断的壮大(相关文章:DNN Content: The growth of community content about Dotnetnuke ),希望在我们中国也应该不甘落后,奋起直追,也算是奥运期间对奥运精神的借鉴和弘扬吧. (资源下载:DNN Blogs链接)

DNN SEO专题

SEO, 是Search Engine Optimization的缩写, 翻译过来是“搜索引擎优化", 直白说就是“针对搜索引擎所做的优化处理工作”。是一种利用搜索引擎的搜索规则来提高目的网站在有关搜索引擎( Google, Baidu, Live Search 等) 内提名的方式。它可以给你的网站带来更多的客户访问量和更高的点击率.  这无疑对于任何一个网站都是处于至高地位的策略.  今天在此将开辟一个专题来谈谈DNN里边的SEO解决方案

中国DNN联盟正式成立

2008年7月27日, 这是一个DNN在中国值得纪念的日子, 这一天, 中国DNN联盟正式成立, 同时, 主题为"我与DNN共成长"的第一届团队活动聚会正式拉开了帷幕, 活动中间, 大家彼此讨论和交流DNN的心得及体会, 展望DNN的发展前景和未来的趋势走向. 我有幸在此聚会结识了不少DNN资深人士及其爱好者, 我想大家的目的都是一样的, 就是想为DNN在中国的推广尽一份力,一份心, 当然我们组织这一活动也是让DNN在国内得到更多的支持, 让更多人加入我们的社区, 共同创造一种学习交流的氛围, 让DNN真正名副其实的"开源". 在此期间, m2land全身心的组织这一活动, 包括发起, 宣传, 布置, 联络等等工作, 为此让我们谢谢m2land, 还有小艾,jeemoo等团队核心的协作和支持. 按照我们的初衷, 就是想通过线下的活动让大家有更多的机会互通有无, 为我们的DNN事业提供更多的机会, 对此我们需要包容所有人的目的和想法, 让大家都能在活动中得到自己需要的东西或达到自己的目标( 或学习 或交朋友 或合作等等).  我们会坚持自己, 让这样的交流活动持续下去, 越办越好, 鼓励更多的人加入我们.
最后我共享一下自己的演示PPT, 因为准备比较仓促, 之后稍微整理了一下, 希望对大家有帮助, 更多的资料我们会不断在论坛中共享给大家. ( 下载地址: 玩转DNN.zip )