台灣最大程式設計社群網站
線上人數
1430
 
會員總數:244570
討論主題:188711
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 多層次會員系統(給個想法ㄅ..^^..)
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
多層次會員系統(給個想法ㄅ..^^..)
價值 : 200 QP  點閱數:3061 回應數:22

樓主

Bibby 版主
高級專家
10169 16
4438 1222
發送站內信

捐贈 VP 給 Bibby
目前手上有一個多層式會員系統..
我是想用.net的內建機制去建立我的會員..
整個系統大概是金字塔型的結構..

第一層a1第二層是b1,b2第三層是c1,c2,c3..依序下去..

現在碰到的問題是..如果是用內建的會員系統..
當c1有aa這會員帳號..c2就不能用aa這帳號了..
這樣會照成很大的困擾..希望各位大大可以提供好主意..
有啥比較samrt的方式可以去解決..謝謝..^^..

搜尋相關Tags的文章: [ 多層次 ] , [ 會員系統 ] ,
本篇文章發表於2008-01-03 13:23
== 簽名檔 ==
這是我的Blog
http://bibby.be
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
小喵覺得很合理啊....

不知道您覺得很的的困擾在哪裡??
本篇文章回覆於2008-01-03 13:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Bibby
捐贈 VP 給 Bibby 檢舉此回應
^^||~~以程式的觀點是合理阿..可是對使用者的觀點..就不太能接受了..
例如c1的這組..他可能根本不知道有其他的c2..c3..c4..等等等..
那他為啥不能用aa這帳戶名稱ㄋ..

然而..當c這一層已經很多組的時候..幾乎一般的帳號都被用光了..這樣會照成很大的困擾..><||..
所以各位大大給點"意見"..^^..
本篇文章回覆於2008-01-03 13:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

牧童叔
檢舉此回應
把帳號名稱改為 階層名稱 + 實際帳號名稱,這樣就不會重覆了,例如
c1-aa
c2-aa
b1-aa

不過要用 .NET 內建的會員機制實作我就沒概念了
本篇文章回覆於2008-01-03 14:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
試試用老方法

1.配合.NET內建機制
會員帳號由程式產生(決定),不管在那一層,都不重覆

2.配合使用者需求
在每個會員基本資料裡找(加)個欄位(例:備註)來用
裡面存的是真正的「會員帳號」,愛怎麼重覆隨便他

使用這種老梗,
好處是可以解決兩方面的需求,
壞處是後續重覆帳號的處理延伸的問題,
類似
「如果只告訴程式會員帳號,程式怎麼知道是那一層的帳號」

什麼?要使用者提供自己在第幾層?
說不定
連使用者自己都不知道自己在那一層裡呢?@_@
本篇文章回覆於2008-01-03 14:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

Allen
捐贈 VP 給 Allen 檢舉此回應
to Bibby,
若您的想法是合理的,那麼,我的帳號是allen,在登入時,就需要輸入
我是a底下的b5底下的c1底下的d9底下的e8的allen
雖然allen很短,但在登入時也沒有變容易就是了

若哪天我覺得有問題時,打去客服,說我是allen, 客服會說"哪個allen? 我們有9千個allen",接著,我就要回答他"我是a底下的b5底下的c1底下的d9底下的e8的allen"
本篇文章回覆於2008-01-03 14:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
小喵覺得合理的原因正因為是User觀點
以EMail服務來看好了
假設有100台Mail Server提供服務(ms1~ms100)
就使用者觀點才不會認為您有幾台Server就應該提供給組可以相同的帳號
反正就是跟業者申請一個Mail帳號
不管業者分配哪一台Sever提供服務

因此就多層次來看
就是參加這一家業者的服務
不需要因為自己的組織在哪裡所以自己這一組的帳號不重複就好

--
無論如何
如果用節點代號+帳號來當作會員的帳號是否可以呢??
例如c1的topcat就是c1topcat
本篇文章回覆於2008-01-03 14:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Bibby
捐贈 VP 給 Bibby 檢舉此回應
#3大大
你的方法我之前有想了一下..
如果以階層是的方式去加c1-aa
那以後登入就會有問題了因為有可能是
c1-aa
c1-d2-aa
這兩個帳戶..在使用者登入時應該都要打aa這帳號然後加上他自己的密碼..
所以程式在還沒登錄前..根本不知道自己是哪一層..一﹏一||..

#4 大大
其實使用者在哪一層不重要..
因為其實在資料庫可以用方法去紀錄..
現在比較有問題的是登錄..

#5
我是幫客戶想的..
因為客戶是想做一個系統..假設是購物系統好了
他希望能分租出去..然後金字塔頂端(a1)的當然想看到所有的帳..所以會員系統要一樣
然後分租出去又可以自己當老闆(b1)可以分租出去(c1)..就像金字塔這樣散出去..

所以假設我是他們分租的其中一位客戶..我以我自己想..我當然不一希望一堆帳戶不能用..所以我才有這個需求..

#6 大大
我們假設一下..
我今天去跟Gmail去申請"Gmail 網域郵件代管服務"..
我們當然希望公司可以用
allen@office.com
test@office.com
aaaa@office.com
這樣的名稱阿..
而不會因為我的服務建在gmail下..而其他人使用過allen,test,aaaa這些名稱..我就不能使用..
(當然我知道可以用是因為domain不同一﹏一||)

上面這個例子..應該比較像我要說出來的感覺..^^||..謝謝各位大大回覆ㄟ..



本篇文章回覆於2008-01-03 15:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
如果是做商城, 會員先註冊,接下來就可以到各商店去買,我覺得是ok的
不然,會員到每家商店都要註冊一次,也不太好用
本篇文章回覆於2008-01-03 16:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

topcat
捐贈 VP 給 topcat 檢舉此回應
#7
從這堶惜j致上可以了解您的問題了
如果各個節點都可以獨立開一個網路商店(每個商店是獨立的)
因此每個商店會有自己的會員
因此在不同商店會有同的帳號問題(不同商店相同帳號不見得相同的人使用)

在這樣的情況下
首先您要知道登入的是哪個商店
如果這個部分沒有問題的話
接下來就是,每個商店有各自獨立的會員管理
這個部分看起來不適合套用ASP.NET的內建會員機制
也就是說
您必須自己建立會員機制的資料表,在使用者登入後,透過自己的程式來做驗證

這個部分請參考以下這篇【ASP.NET 2.0如何使用Login來存取自己的使用者資料庫 】
http://blog.blueshop.com.tw/topcat/archive/2005/12/19/15562.aspx

本篇文章回覆於2008-01-03 17:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

TigerLin
捐贈 VP 給 TigerLin 檢舉此回應
恩恩....同一個帳號卻要對應不同的群組
等於說 MemberID 是可以重複的,這種規格還真特殊呢

今天假設可以開另外一張表格來儲存會員的其他資訊來說好了
請問註冊的過程中還有什麼其他的資訊可以填寫嗎
除了帳號 & 密碼之外應該還有一些額外的資訊吧
本篇文章回覆於2008-01-03 17:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Bibby
捐贈 VP 給 Bibby 檢舉此回應
#9
謝謝提供資料..^^..我研究看看..

#10
同一個會員資料庫要大家一起用
可是group跟group的username是希望可以一樣的

現在問題最大點是在..login頁面..只有username跟password可以輸入..(最多多個驗證碼應該跟這沒關西..)

有誰可以提供一些idealㄋ..

本篇文章回覆於2008-01-03 19:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
用 profile比較方便吧
本篇文章回覆於2008-01-03 19:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

Bibby
捐贈 VP 給 Bibby 檢舉此回應
#12
問題是..登入時..我根本不知道你是誰..那要用誰的profileㄋ..一﹏一||..
本篇文章回覆於2008-01-03 19:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
不錯的參考

TigerLin
捐贈 VP 給 TigerLin 檢舉此回應
換個角度與方法來想~~~
這裡假設 .NET 內建的資料表 (假設名稱tbMbr)為:
=============================
MBR_NO│MemverID│MemberPW
-----------------------------
1 │ test01 │ 0001
2 │ test02 │ 0002
3 │ test03 │ 0003
4 │ test04 │ 0004
5 │ test05 │ 0005
=============================

這裡在 DB 再開另外一張資料表(tbGroupAsign):
===============================
ASN_NO│ MBR_NO │ GroupNo
------------------------------
1 │ 5 │ 09
2 │ 4 │ 02
3 │ 3 │ 01
4 │ 2 │ 01
5 │ 4 │ 09
==============================

群組對照用的資料表(tbGroups):
===============================
GroupNo│GroupName│GroupRole
-------------------------------
1 │ admin │ 9
2 │ member │ 1
3 │ guest │ 1
===============================

將以上三個表格再拉出一張 view 表:


使用者登入成功之後你一定會把MemberID帶到Session裡面吧~
原本您的檢驗與法可能是針對tbMbr來做驗證的動作
接下來只要把檢驗的動作指向到這張 view 表,登入的時候也可以一起帶出 GroupNO 了~
這是我目前可以想到的應對方法,希望對你有幫助^^

P.S 階層式的您可以自己延伸看看~~ ;)


本篇文章回覆於2008-01-03 21:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
最有價值解答

專家之專門騙大家
捐贈 VP 給 專家之專門騙大家 檢舉此回應
#4 (舉手)第二次發言

確認一下,你的問題是
1.要用.NET的內建機制,但他不支援重覆帳號
還是
2.如何處理會員(在不同層)相同帳號?

如果是1
我的建議同第一次發言

如果是2
似乎自己訂一個會員資料庫會簡單得多,類似
帳號 密碼 層級 姓名
JOHN 123 a1 JOHN_WU
JOHN 456 a2 JOHN_HUANG
JOHN 789 a3 JOHN_CHANG

當JOHN登錄時,
用「帳號+密碼」進行檢核,
找得到就是工廠那個JOHN,
找不到就是錯誤登入,進行錯誤處理,
不知道這樣可以嗎?

(謎之音:萬一好死不死兩個JOHN的密碼都是2266怎麼辦?
我也不知道 @_@|||)
本篇文章回覆於2008-01-03 22:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.