• 1157 阅读
  • 6 回复

整合BBSMAS到自己的网站的简单示例

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
注意不要用后台的按钮设:要点http://your domain/max-admin/passport/setting-passportserver.aspx


BBSMAX在5.0版本中预留了大量的Web Service接口,可以进行非常完美的整合, 如果希望其他程序整合到BBSMAX论坛,则需要您有一定的.NET开发能力。

下面是一个判定用户是否登陆的简单示例,如果没有登陆显示“noUser”, 如果已经登陆则显示当前用户的用户名。整合步骤如下:
1. 安装BBSMAX5.
2.用创始人权限登陆后台
3.由于接口的设置页面在5.0版本中并没有在后台菜单中显示出来,可以在地址栏中直接输入页面URL访问
http://your domain/max-admin/passport/setting-passportserver.aspx
3、开启passport服务并保存设置
4、添加客户端(见图)



保存后记下 ID 和 通信密钥。




5、在你自己的项目中添加MaxLabs.Passport.ClientKit,并添加引用 下载见附件
MaxLabs.Passport.ClientKit.rar(文件大小: 234.6 K)


6. 在你自己的项目的Web.config文件中添加以下代码
<appSettings>
      <add key="passportclient" value="server=http://localhost:99(BBSMAX网站地址);clientid=2(刚才记下的ID); accesskey=testmyapipassword123!@(刚才记下的通信密钥)"/>
  </appSettings>

7. 现在你可以直接在项目你调用MaxLabs.Passport.ClientKit中的UserUtil类里的方法了,可用的具体静态方法请参见 MaxLabs.Passport.ClientKit项目下的UserUtil.cs 文件(当然你自己可以扩展,可参考http://bbs.bbsmax.com/api.asmx)


(上图中的可以直接使用UserUtil.CurrentUser.Username, 开始没注意是静态方法还去实例化了一个user对象,晕,不好意思哈。)
http://www.29797.com/Web/WEB/bbsmax/094051152350.html
本帖最后由 admin 于 2011-09-09 11:11 编辑
小鱼的淘宝店铺-多多支持哇

发张技术帖。关于API接口的实现。欢迎一起探讨更佳方法

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)


第一个参数是username=用户名;password=用户密码;ip=用户登陆IP;autoLogin=是否记住登陆状态,以便下次自己登陆。默认保存1个月。

接下来,我们需要编写一个扩展服务接口。在VS里边新建一个项目。命名空间为bbsmax.Api.service。引用bbsmax的相关DLL:

usingMaxLabs.bbsMax;
usingMaxLabs.bbsMax.Common;
usingMaxLabs.bbsMax.Entities;

在项目里建立一个WebService。例如名为Userbo.asmx。编写登陆服务代码:


代码 复制 - 运行
[WebMethod] public string Login(string userName, string password, bool autoLogin) { UserBO user = new UserBO(); bool done = user.Login(userName, password, IPUtil.GetCurrentIP(), autoLogin); string ApiUrl = ""; if (done) { string keyValue = "user=" + user.GetAuthCookie(); keyValue = Security.DESEncrypt(keyValue); //二次加密 ApiUrl = @"{0}/aip/api.ashx?key={1}"; ApiUrl = string.Format(ApiUrl, new object[] { Globals.FullAppRoot, Server.UrlEncode(keyValue) }); } user = null; return Api

bbsmax本身已经隐藏着许多的“接口”。每个类下有许多调用简便的方法。下面咱们来探讨一下关于同步登陆的一个机制:
MaxLabs.bbsMax.UserBO下有一个Login(...)的“东西”。它有三个重写。其中最常用的应该是下面这个方法


代码 复制 - 运行
public bool Login(string username, string password, string ip, bool autoLogin) { return this.Login(0, username, password, ip, autoLogin); }


以上代码中,会返回一个api接口路径,其中包括了已经加密的用户登陆信息。编译后。服务端就做成了。
接下来就制作客户登陆入口。“客户端”。远程调用WEB服务,将以异步请求方式来连接。
在“客户端”工程里,“添加WEB引用”。在弹出窗口里,将WEB服务接口地址填URL框中。然后就可以添加引用了。
[attachimg=262,158]3479[/attachimg]

然后添加一个Debug.aspx文件进行测试。先在Debug.aspx的
<%@PageLanguage="C#"AutoEventWireup="true"........中添加Async="true"才可以进行异步请求。
示例代码如下:


代码 复制 - 运行
protected void Page_Load(object sender, EventArgs e) { this.UserLogin(); } private void UserLogin() { Membership userbo = new Membership(); userbo.CookieContainer = new CookieContainer();//创建Cookie userbo.LoginAsync("forgetit", "00000000", false); userbo.LoginCompleted += new LoginCompletedEventHandler(userbo_LoginCompleted); } private void userbo_LoginCompleted(object sender, LoginCompletedEventArgs e) { Membership obj = (Membership)sender; if (e.Error != null) return; Label1.Text = e.Result; //返回值 CookieCollection cookie = obj.CookieContainer.GetCookies(new Uri(obj.Url));//获取Cookie if (cookie.Count > 0) { Label1.Text += "<br /><br />cookie:" + cookie[0].Value; } obj.Abort(); }


编写好代码后,F5进行测试。

[attachimg=536,78]3480[/attachimg]
以返回结果显示,用户登陆成功了!
http://bbs.bx.chinaz.com/chat/thread-1322475-1-1.html?SearchText=api
小鱼的淘宝店铺-多多支持哇

整合BBSMAS到自己的网站的简单示例(含详步骤)

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
BBSMAX在5.0版本中预留了大量的Web Service接口,可以进行非常完美的整合, 如果希望其他程序整合到BBSMAX论坛,则需要您有一定的.NET开发能力。

下面是一个判定用户是否登陆的简单示例,如果没有登陆显示“noUser”, 如果已经登陆则显示当前用户的用户名。整合步骤如下:
1. 安装BBSMAX5.
2.用创始人权限登陆后台
3.由于接口的设置页面在5.0版本中并没有在后台菜单中显示出来,可以在地址栏中直接输入页面URL访问
http://your domain/max-admin/passport/setting-passportserver.aspx
3、开启passport服务并保存设置
4、添加客户端(见图)
您是游客您没有权限查看该图片


保存后记下 ID 和 通信密钥。
您是游客您没有权限查看该图片



5、在你自己的项目中添加MaxLabs.Passport.ClientKit,并添加引用 下载见附件
MaxLabs.Passport.ClientKit.rar(文件大小: 234.6 K, 下载次数: 184)

您是游客您没有权限查看该图片

6. 在你自己的项目的Web.config文件中添加以下代码
<appSettings>
      <add key="passportclient" value="server=http://localhost:99(BBSMAX网站地址);clientid=2(刚才记下的ID);accesskey=testmyapipassword123!@(刚才记下的通信密钥)"/>
  </appSettings>

7. 现在你可以直接在项目你调用MaxLabs.Passport.ClientKit中的UserUtil类里的方法了,可用的具体静态方法请参见 MaxLabs.Passport.ClientKit项目下的UserUtil.cs 文件(当然你自己可以扩展,可参考http://bbs.bbsmax.com/api.asmx
您是游客您没有权限查看该图片

(上图中的可以直接使用UserUtil.CurrentUser.Username, 开始没注意是静态方法还去实例化了一个user对象,晕,不好意思哈。)
测试的时候主站和论坛的主域必须是一样的,不然测试不成功。


http://bbs.bx.chinaz.com/extensions/thread-1328810-1-1.html
本帖最后由 admin 于 2011-09-09 10:05 编辑
小鱼的淘宝店铺-多多支持哇

SiteFactory3.6 版本与bbsmax论坛整合

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
BBSMAX在论坛的根路径下有一个 api.asmx 所有的API接口均定义于这个文件
http://your domain/max-admin/passport/setting-passportserver.aspx
1、开启passport服务。
2、保存设置
3、注册客户端
您是游客您没有权限查看该图片


4、注册成功客户端后得到客户端ID,调用API时需要附带此客户端ID和通讯密钥

您是游客您没有权限查看该图片

5、客户端ID和通讯密钥需要通过SoapHeader对象传输。附带这两个参数的方法:
请参见 MaxLabs.Passport.ClientKit项目下的
Common\AsmxAccess.cs 文件。 下图:

您是游客您没有权限查看该图片



配置好Web Service并且注册了Passport客户端能访问Web Service的API以后可以通过,读取到COOKIE的值通过函数:
User_ValidateTicket可以获取当前已登录用户的用户信息。
函数原型  publicDataForLogin User_ValidateTicket(string value);

http://bbs.powereasy.net/forum73/thread-492547-1-1.aspx
小鱼的淘宝店铺-多多支持哇

在vs2008下打开bbsmax5源码包的方法

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)

项目名称项目说明  项目依赖  
MaxLabs.bbsMax.Rescourses资源项目,目前只放一些语言包,方便以后支持多语言。无功能行的代码
MaxLabs.bbsMax.RegExp正则表达式项目。 系统中所有的正则表达式全部定义于这里,无功能性的代码
MaxLabs.bbsMax.Project数据库项目, 存放BBSMAX数据库结构,包括所有的bbsmax数据库表、视图、触发器、函数、关系、和部分存储过程的脚本资源文件,无功能性的代码
MaxLabs.Passport.Proxybbsmax的Passport服务器和客户端公用的传递数据的代理类
MaxLabs.Passport.ClientPassport客户端接口, 当挂接到Passport服务器后通过此项目接收由Passport服务器发送过来的指令MaxLabs.Passport.Proxy
MaxLabs.Passport.ClientKitPassport的客户端开发工具箱(待完善)
MaxLabs.bbsMaxbbsmax业务逻辑层BBSMAX内核部分.MaxLabs.bbsMax.Rescourses
MaxLabs.bbsMax.RegExp
MaxLabs.Passport.Proxy

当开启Passport服务器的时候需要通过MaxLabs.bbsMax.IInstructEngine接口间接引用MaxLabs.Passport.InstructEngine
MaxLabs.Passport.InstructEnginePassport服务器数据同步指令发送引擎部分,
负责发送同步数据同步指令到每个Passport客户端
MaxLabs.Passport.Proxy
MaxLabs.bbsMax
MaxLabs.bbsMax.DataAccess.SqlServerbbsmax数据访问层,这个项目内的DAO类均继承自MaxLabs.bbsMax.DataAccess.DaoBase<T>抽象类,定义于MaxLabs.bbsMax项目MaxLabs.bbsMax.Rescourses
MaxLabs.bbsMax
MaxLabs.Passport.Server系统整合WebService ,Passport服务器 API接口MaxLabs.Passport.Proxy
MaxLabs.bbsMax
MaxLabs.bbsMax.WebWeb层。除MaxLabs.bbsMax.Project以外的所有项目
小鱼的淘宝店铺-多多支持哇

BBSMAX 本地测试,找不到存储过程???这个错误怎么弄

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
本地测试,找不到存储过程???这个错误怎么弄
.错误提示: 找不到存储过程 'bx_LoadAllSettings'。
[*]错误编号: 4F2D6C8EED3A4C6DACEBC2EB6B3E4797

错误原因:你本地使用的SQL登录名和空间使用的不一至

解决办法:SQL查询分析器中执行以下脚本更新用户表/存储过程/视图/触发器/自定义函数的所有者为dbo
执行的时候记得选择你的数据库,有错误提示不要理会,执行完关闭窗口,你的数据库就可以随便使用登录名了

代码 复制 - 运行

declare tb cursor local for
select 'sp_changeobjectowner ''['+replace(user_name(uid),']',']]')+'].['
+replace(name,']',']]')+']'',''dbo'''
from sysobjects
where xtype in('U','V','P','TR','FN','IF','TF') and status>=0
open tb
declare @s nvarchar(4000)
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
go


小提示:
全新安装bbsMax或者升级的时候,如果有条件,建议使用SA进行安装升级,然后手动修改bbsmax.config文件中的SQL登录名和密码,修改后记得重启IIS,这样可以避免以后数据库转移和SQL用户名更换带来的麻烦
小鱼的淘宝店铺-多多支持哇
视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)

BBSSolution

bm加载过程及default、index页面定位
摘要: bm默认打开的是default指向templates\default\forums\default.aspx,如果采用index.aspx访问,虽然url变成了index.aspx,但是仍然显示的是default.aspx的内容。分析代码发现:每次页面请求触发Web\Global.asax.cs中的Application_BeginRequest函数对请求进行处理,在Application_BeginRequest->BbsRouter.Route()调用BbsRouter.cs中的GetCurrentUrlScheme(),该函数通过调用UrlScheme.Parse(RawUrl)对阅读全文

posted @ 2012-03-24 23:57 Johnsonton's blog| 编辑


bm模板名称
摘要: bm在右下角提供了可选的模板选择,这些模板的名称除了在管理界面可以修改,还可以找到对应的config文件,在每个模板文件夹下的_skin.config设置了相关模板名称。阅读全文

posted @ 2012-03-06 23:04 Johnsonton's blog| 编辑


bm修改Assembly
摘要: 修改前应将MaxLabs.bbsMax项目中的WebService PassportServerInterface相关的部分(如UserBO中涉及到Passport的部分等)标注并予以正确的注释掉,注意是注释而不是删除,以便于修改编译后去掉注释。将各项Assembly重新命名后编译,并重新发布Passport WebService。Assembly重新命名会导致WebEngine加载部分Assembly失败,跟踪一下发现在WebEngineConfig类中重写GetTemplatePackages()函数时初始化了固定的Assembly名称,注意将其修改为正确的Assembly名称即可。如果之阅读全文

posted @ 2012-03-05 23:18 Johnsonton's blog| 编辑


bm首页最新 热门 精华 bug
摘要: 今天测试首页“最新 热门 精华”时发现点击“热门 精华”没有反应,跟踪发现:1)页面max-templates\default\forums\_forumsidebar_.aspx<li><a href="$url(default)?topthreadtype=recent" <!--[if $TopThreadType=="recent"]-->class="current"<!--[/if]--> onclick="return ajaxRender(this.href,'阅读全文

posted @ 2012-02-21 16:02 Johnsonton's blog| 编辑


bm添加收藏本站功能
摘要: 很多网站都在右上角等醒目位置放置了“”功能,下面简单说一下如何在bm上添加此功能:bm顶部工具链接放在MaxLabs.bbsMax.Web\max-templates\default\_inc\_toolbar.aspx中,考虑在其最右边添加“收藏本站”功能找到最右边位置,添加如下代码:<a href="javascript:void(0)" onclick="addToFavorite()">收藏本站</a>在<script>部分添加对应方法即可:function addToFavorite() { var a = 阅读全文

posted @ 2012-02-20 17:13 Johnsonton's blog| 编辑


bm互动中心、PowerBy、当前版本信息等
摘要: 1、互动中心 主要在max-templates\default\_inc\_head.aspx(60)与max-templates\yellow\_inc\_head.aspx(60)文件中,另外_codes\my\default.aspx.cs(35)处的文字用于pagetitle2、在max-admin\default.aspx(151)文件中包含有获取当前版本和最新版本信息的引用页面3、用户默认头像放置在MaxLabs.bbsMax.Web\max-assets\avatar下,有avatar_24.gif、avatar_48.gif、avatar_120.gif,用于不同情况的显示4、阅读全文

posted @ 2012-02-17 21:16 Johnsonton's blog| 编辑


bm部分文件编码采用的GB2312
摘要: 今天用VS之外的编辑器对代码进行了一下修改,结果出现乱码,原来大部分文件编码是UTF8,部分文件采用的GB2312。阅读全文

posted @ 2012-02-17 19:56 Johnsonton's blog| 编辑


例子说明修改bm
摘要: [MaxLabs.bbsMax] 逻辑层,用来放 单个实体类(Entity)、实体集合类(Collection) 、抽象类(Dao)、逻辑处理类(BO)单个实体类(Entity)、实体集合类(Collection)都放在“Features” \ 对象名 \ “Entities” 目录下。按照bbsmax的框架结构,实体的集合,都应放在 实体集合类(Collection)中,它类似于(List<TV>). 实现了:“ICollection<TV>“, ”IComparable<TK> ,“IPrimaryKey<TK>”,"IEnumer阅读全文

posted @ 2012-02-09 20:50 Johnsonton's blog| 编辑


[BM]整合其他网站用户管理(如注册、登录)到BM
摘要: BBSMAX在5.0版本中预留了大量的Web Service接口,可以进行非常完美的整合, 如果希望其他程序整合到BBSMAX论坛,则需要您有一定的.NET开发能力。下面是一个判定用户是否登陆的简单示例,如果没有登陆显示“noUser”, 如果已经登陆则显示当前用户的用户名。整合步骤如下: 1. 安装BBSMAX5.2.用创始人权限登陆后台3.由于接口的设置页面在5.0版本中并没有在后台菜单中显示出来,可以在地址栏中直接输入页面URL访问http://your domain/max-admin/passport/setting-passportserver.aspx3、开启passport服务阅读全文

posted @ 2012-02-01 17:23 Johnsonton's blog| 编辑


[BM]缺少模板,导致运行错误,Skin skinBase = WebEngine.Context.Current.Skin.GetSkinBase();
摘要: 试用了BM新版时,出现运行错误,定位在WebEngine\PageBase.cs line 394 "Skin skinBase = WebEngine.Context.Current.Skin.GetSkinBase();"跟踪发现,之前使用的老版本时修改了默认模板,而新版本试用同一个数据库,导致运行时缺少模板文件引发如上错误。阅读全文

posted @ 2012-01-31 13:57 Johnsonton's blog| 编辑
小鱼的淘宝店铺-多多支持哇