国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET Forums與現有系統整合方案示例

2019-11-18 19:15:48
字體:
來源:轉載
供稿:網友

  asp.net Forums以下簡稱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吸收掉錯誤,而無返回,你不一定要這么做。

public void Register()
{
 try
 {
  User user = new User();
  user.Username = Username;
  user.Password = Password;
  user.Email = "Anonymous@Anonymous.com";
  user.AccountStatus = UserAccountStatus.ApPRoved;
  user.IsAnonymous = false;
  Users.Create(user, false);
 }
 catch
 {
 }
}

  登錄

  基本上都是復制粘貼過來的,注意最后的setcookie,這是同步登錄的關鍵。

public void Login()
{
 try
 {
  User userToLogin = new User();
  userToLogin.Username = Username;
  userToLogin.Password = Password;

  LoginUserStatus loginStatus = Users.ValidUser(userToLogin);

  if (loginStatus == LoginUserStatus.Success)
  {
   if (!Globals.GetSiteSettings().AllowLogin)
   {
    bool allowed = false;

    int userid = Users.FindUserByUsername(userToLogin.Username).UserID;
    ArrayList roles = Roles.GetRoles(userid);

    foreach (Role role in roles)
    {
     if (role.Name == "Site Administrators" || role.Name == "Global Administrators")
     {
      allowed = true;
      break;
     }
    }
    if (!allowed)
    {
     return;
    }
   }
   set_Cookie(userToLogin.Username, "1");
  }
 }
 catch
 {
 }
}

  修改密碼

  這個假設是基于登錄已經發生的,如果你的假設不是這樣需要加入自己的判斷。

public void ChangePassword()
{
 try
 {
  ForumContext forumContext = ForumContext.Current;
  User user = forumContext.User;
  if (user != null)
  {
   user.ChangePassword(Password, NewPassword);
  }
 }
 catch
 {
 }
}

  設置cookie

public void set_Cookie(string Username, string Selet_item)
{
 if(Selet_item == "0")
 {
  FormsAuthentication.SetAuthCookie(Username,false);
 }
 else
 {
  ForumContext forumContext = 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判斷一下誰可以訪問這頁!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 左贡县| 瑞金市| 曲麻莱县| 余姚市| 宜宾县| 怀集县| 佛山市| 海安县| 黑龙江省| 胶南市| 扎鲁特旗| 如东县| 安溪县| 刚察县| 蒲城县| 图们市| 七台河市| 平果县| 额尔古纳市| 渝北区| 南平市| 江陵县| 湘西| 景泰县| 斗六市| 奉新县| 云和县| 吉首市| 兴城市| 方城县| 厦门市| 洞口县| 凯里市| 盘山县| 洪洞县| 满洲里市| 巴彦淖尔市| 兰坪| 浮山县| 九龙城区| 青海省|