欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【ASP.NET Forums与现有系统整合方案示例】,下面是详细的分享!
ASP.NET Forums与现有系统整合方案示例
Asp.NetForums以下简称ANF,版本2.0,本文系数流水帐,只是记录了一下今的工作,没啥技术含量。
已有系统已经有自己的一套用户系统,需要挂接ANF,要求在已有系统用户注册,登录,修改密码时,在ANF中也做出相应反映。不要求ANF的用户变化影响已有系统,只是单向同步。
在尽量少动已有代码的情况下找一种简单的方式来完成整合。之前看了宝玉的CnForums和已有系统的整合方案,最后偷懒决定在已有系统上述动作结束后将用户相关信息和操作类型附加在url后面传给一个新建页来处理在ANF中执行相关操作。
这新建页暂且叫bridge.aspx当然要建在ANF的项目中该using的都using了,负责接收用户名密码等信息然后执行相应的ANF操作。
注册
注册很简单,我的Username和Password是自己包装的属性,从Request中获取信息,我们系统没有Email就随便添一个,接下来要给AccountStatus设置为通过,IsAnonymous关掉。Users.Create中那个bool参数代表是否给用户发送注册成功提示的邮件,我没邮件当然关掉。
注意我在所有的地方都catch吸收掉错误,而无返回,你不一定要这么做。
publicvoidRegister()
{
try
{
Useruser=newUser();
user.Username=Username;
user.Password=Password;
user.Email="Anonymous@Anonymous.com";
user.AccountStatus=UserAccountStatus.Approved;
user.IsAnonymous=false;
Users.Create(user,false);
}
catch
{
}
}
登录
基本上都是复制粘贴过来的,注意最后的setcookie,这是同步登录的关键。
publicvoidLogin()
{
try
{
UseruserToLogin=newUser();
userToLogin.Username=Username;
userToLogin.Password=Password;
LoginUserStatusloginStatus=Users.ValidUser(userToLogin);
if(loginStatus==LoginUserStatus.Success)
{
if(!Globals.GetSiteSettings().AllowLogin)
{
boolallowed=false;
intuserid=Users.FindUserByUsername(userToLogin.Username).UserID;
ArrayListroles=Roles.GetRoles(userid);
foreach(Roleroleinroles)
{
if(role.Name=="SiteAdministrators"||role.Name=="GlobalAdministrators")
{
allowed=true;
break;
}
}
if(!allowed)
{
return;
}
}
set_Cookie(userToLogin.Username,"1");
}
}
catch
{
}
}
修改密码
这个假设是基于登录已经发生的,如果你的假设不是这样需要加入自己的判断。
publicvoidChangePassword()
{
try
{
ForumContextforumContext=ForumContext.Current;
Useruser=forumContext.User;
if(user!=null)
{
user.ChangePassword(Password,NewPassword);
}
}
catch
{
}
}
设置cookie
publicvoidset_Cookie(stringUsername,stringSelet_item)
{
if(Selet_item=="0")
{
FormsAuthentication.SetAuthCookie(Username,false);
}
else
{
ForumContextforumContext=ForumContext.Current;
FormsAuthentication.SetAuthCookie(Username,true);
forumContext.Context.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.
_Now.AddDays(System.Convert.ToInt32(Selet_item));
}
}
最后在已有系统的注册,登录,修改的最后Response.Redirect这页就ok,不喜欢Redirect,Server.Transfer,xmlhttp都行,看你需要的展现了。还有一点很关键,就是要加密了你传输的字符串,要不明文就……※¥※×%※×,要是嫌还不安全就用ip判断一下谁可以访问这页!
以上所分享的是关于ASP.NET Forums与现有系统整合方案示例,下面是编辑为你推荐的有价值的用户互动:
相关问题:Discuz!NT怎么和现有的Asp.Net网站整合,实现单点登录
答:要看你的a网站是用什么后台,什么语言。 如果是自己写的话,DZ nt版有很强大的接口,用起来也很方便,可以到DZ论坛查看相应的帖子。 >>详细
相关问题:请问系统迁移方案具体要怎么写?
答:给你一个例子: 慧点科技Exchange邮件系统迁移方案 1. 背景分析 目前Exchange的用户大多还在使用Exchange 5.5,随着微软官方对于Exchange 5.5的支持在2003年12月31日中止,大量Exchange 5.5的用户面临着巨大的邮件系统升级压力。 Exchange 5.5作... >>详细
相关问题:高分悬赏,有没有asp.net和C#都懂的大神,我做了一...
答:你把代码发上来。 少量修改还可以。 大量的话,百度知道一般没人给弄的。 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
