2008年1月3日主题讨论日


MOSS开发群主题讨论日讨论记录:

ShuGuang says (15:03):
开始开始
北京㊣umboy says (15:03):
ok
南京@沉睡海洋 says (15:03):
小板凳...
shanhx@163.com (E-mail Address Not Verified) says (15:03):
 
北京㊣Y.M says (15:03):
 
  漫步人生 says (15:03):
 
ShuGuang says (15:03):
“如何在SharePoint中集成Live ID认证”
ShuGuang says (15:04):
这个主题涉及到两个方面,1、SharePoint的membership provider机制,2、Live ID
先简单的讲一下live id
蘇州㊣uli says (15:04):
shuguang
十一™@台北 says (15:04):
跟.net passport 不一樣嗎?
蘇州㊣uli says (15:04):
我怎么解除屏蔽消息啊
ShuGuang says (15:05):
live id就是以前的.net passport
十一™@台北 says (15:05):
 / p 0 試試...我猜的
Windie Chai@Beijing says (15:05):
直接反斜杠P就好.
星宿(朱贺) says (15:05):
/ ! p
北京㊣皮皮 says (15:05):
/               p
ShuGuang says (15:05):
任何第三方网站可以使用live id来作为自己的认证体系,live id也提供了简单好用的接口
星宿(朱贺) says (15:05):
就解除屏蔽了
南京@沉睡海洋 says (15:06):
LIVE ID SDK ?
ShuGuang says (15:06):
首先,需要在live上为自己的网站注册一下
https://msm.live.com/app
ShuGuang says (15:07):
在这里,需要提供几项信息:application名称,通过live id认证后转向到哪个url
北京㊣umboy says (15:07):
用LIVE ID后必须连上互联网么?
[北京]AA-Hovic says (15:07):
 
ShuGuang says (15:08):
注册完成后,需要知道两个信息:application id和secret key(自己指定),application id是一串字符,比如,wiki.msotec.net注册后的application id就是“00163FFF80006065”
ShuGuang says (15:09):
然后,在自己的网站上显示一个指向live的登录链接,在链接url后面要加上application id的query string
我这里讲的是原理,具体步骤和方法可以参考live id sdk
北京㊣umboy says (15:10):
恩。继续
ShuGuang says (15:10):
用户点击登录后,会被导到live id的登录page,在这个page上使用自己的live id进行登录
  漫步人生 says (15:10):
权限怎么设置?
北京㊣umboy says (15:10):
登录后可以断网么?
南京@沉睡海洋 says (15:11):
断开因特网,转入内网?
ShuGuang says (15:11):
然后,live会向我们指定的一个url进行一个post的动作,post的数据中包含了多项信息,但最主要,就是这个live id帐号的一个唯一id号
每个live帐号在每个application都有一个唯一的用户id
live登录后,只会将这个唯一的id告诉我们的网站
ShuGuang says (15:12):
也就是说,用户在live登录后,我们的网站实际上不能知道这个用户的任何信息,包括他的live帐号、邮件地址...只有一个id号(一串字符)
这样的设计,也是为了保护用户的隐私
ShuGuang says (15:13):
我们的网站拿到这个用户id号之后,再根据自己的需求,进行处理。
live id就是这么回事了
骆建峰 says (15:14):
Live ID 這個服務是要收費的嗎?
西安㊣UnName says (15:14):
有配额限制吗
大连㊣银烨妖瞳 says (15:14):
应该不会吧
ShuGuang says (15:15):
千万要注意的是,得到的这个用户id,只是一串字符,既不是用户的邮件(Live帐号),也不是他的名字。我们不能从这个用户id推导出任何用户的个人信息
free
no limit
上海㊣表情 says (15:15):
权限怎么挂勾
M群-赏梅斋-MOSS开发 says (15:16):
【系统提示】  漫步人生将昵称更改为深圳㊣漫步人生
ShuGuang says (15:16):
OK,介绍完live id,我再讲sharepoint这边。最后会再具体介绍wiki.msotec.net上是如何把live id和sharepoint的用户系统进行整合的
ShuGuang says (15:17):
一个要注意的是:“认证”和“授权”是两回事,不要混为一谈!
认证:就是确认一个访问者是不是某人,通常需要这个访问者提供用户名、密码,或者其他方式(比如使用live id)
ShuGuang says (15:18):
认证只能确认这件事:那个号称自己是十一的访问者,确实是十一本人
骆建峰 says (15:18):
也就是說Live id只提供認證,權限是由客戶的應用程序來處理的了,是吧
ShuGuang says (15:18):
AD就是用于认证的
ShuGuang says (15:19):
授权:确认某个用户在我们的系统里面有什么样的权限,能做什么,不能做什么
南京@沉睡海洋 says (15:19):
那么授权,比如哪些LIVE ID可以登录系统,哪些live id 不可以登录系统,在哪里设置呢,在live上设置还是在系统里面呢
ShuGuang says (15:19):
sharepoint的授权系统是自己管理的,我们通常通过“网站设置”进入到的权限管理里面,都是“授权”这一块的内容
ShuGuang says (15:20):
而认证这一块,sharepoint使用了membership provider,这个asp.net 2.0的模块,以提供强大的扩展性
ShuGuang says (15:21):
也就是,从某种意义上来说,sharepoint本身并不管认证,而直管授权。sharepoint默认使用了ActiveDirectoryMembershipProvider,这个.Net 2.0内置的membership模块,来进行认证。也就是,默认使用AD集成认证
ShuGuang says (15:22):
这个认证模块会验证页面访问者是什么人,然后把这个人的用户名告诉sharepoint,sharepoint然后进行授权检验,也就是看这个用户名在当前网站上是否有什么权限
十一™@台北 says (15:23):
ActiveDirectoryMembershipProvider 應該是基於Form-based authentication吧? Windows authentication也是用ActiveDirectoryMembershipProvider ?
ShuGuang says (15:25):
嗯,我印象中好像就是ActiveDirectoryMembershipProvider
北京㊣皮皮 says (15:25):
---------------------邪恶的分割线-----------------------------
ShuGuang says (15:25):
.net 2.0内置了两个,这是其一,另外一个好像是使用SQL的那个
北京㊣umboy says (15:25):
是的。
十一™@台北 says (15:26):
這是當網站使用Form-based authentication時才有用
如果用windows authentication , ActiveDirectoryMembershipProvider 裡的method 都用不了...Q_Q
ShuGuang says (15:26):
我继续。membership provider是可以由开发人员自己开发的
ShuGuang says (15:27):
简单来说,我们自己写的membership provider要做这样的事情:验证一个访问者是否是某个用户
ShuGuang says (15:28):
同时,membership provider还将用户的用户名这个信息返回给sharepoint
ShuGuang says (15:29):
更严格的说,membership provider将用户名以这样的格式返回给sharepoint:“provider名:用户名”
这样,sharepoint就知道当前访问者是谁了
ShuGuang says (15:30):
但是,这个访问者如果被sharepoint认为对当前网站没有访问权限,那也访问不了网站页面
ShuGuang says (15:31):
在sharepoint管理中心,可以直接指定一个web application的membership provider是什么
当然,还需要将定制的membership provider在web.config里面注册。注册的方法和asp.net 2.0一模一样
ShuGuang says (15:33):
OK,最后,来介绍一下wiki.msotec.net是怎么做的。源码大家可以下载到,可以对照看看
首先,我使用一个list,来保存有权限访问站点的用户的列表,这个list里面,最主要就是要保存从live id返回的那个用户id
天津㊣板凳兄 says (15:34):
moss数据库中的历史数据默认不自动清除吗?
ShuGuang says (15:34):
然后,有一个定制的membership provider,LiveIDMembershipProvider类,wiki.msotec.net的认证由它负责
上海㊣表情 says (15:34):
用户信息是怎么导进来的
ShuGuang says (15:35):
同时,源码里面还有一个web app项目,里面有几个页面,login.aspx之类,用来显示一个定制的页面给未登录用户,当然还有其他的事情
ShuGuang says (15:37):
OK,现在是流程:首先,当用户点击站点的“登录”链接的时候,自动跳转到我写的login.aspx页面。这个行为是靠修改web.config里面的“<forms>”节点来实现的
M群-赏梅斋-MOSS开发 says (15:38):
ShuGuang (15:37:39) 说:
  比如:“<forms loginUrl='/_layouts/LiveIDPages/login.aspx' />”

上海㊣NEO (15:38:07) 说:
  这个更改对所有的站点都有效吗?

ShuGuang (15:38:25) 说:
  这个页面其实特别简单,就显示一个链接,指向live的真正登录页面,用户使用这个链接,跳转到live的登录页面

ShuGuang (15:38:43) 说:
  web.config对一个web application(可能包含一个或多个site collection)生效


上海㊣表情 says (15:39):
用户信息怎么办
ShuGuang says (15:40):
访问者就在live的登录页面上,进行登录,登录完成以后,live将这个用户的唯一id号post给我指定的一个页面,这个页面在wiki.msotec.net里面,是“/_layouts/LiveIDPages/LiveIDAuthHandler.aspx”
这个用户唯一id号的格式类似“3721dd8ay7sdklaufhwq”...
南京@沉睡海洋 says (15:41):
管理员如何知道哪个ID对应哪个人呢。
上海㊣表情 says (15:41):
如果用AspnetSqlMembershipProvider,怎样自动把用户信息导入

ShuGuang says (15:41):
LiveIDAuthHandler.aspx的page_load里面,分析一下request.Forms里面的数据,就得到了这个用户的唯一id
ShuGuang says (15:43):
然后,在LiveIDAuthHandler.aspx里面,我调用了LiveIDMembershipProvider.ValidateUser()方法,这个方法里面的代码访问那个存放了站点用户数据的list,根据这个用户唯一id,看看是不是存在这样一个list item
如果存在,那么就读取这个list item的数据,这个list包含了其他的field,用来保存用户的“昵称”,然后把这个用户的昵称信息返回给LiveIDAuthHandler.aspx
ShuGuang says (15:45):
LiveIDAuthHandler.aspx从LiveIDMembershipProvider.ValidateUser()得到肯定的信息之后,就确认,OK,这个用户是谁谁谁,他是我这个网站的用户,于是,调用asp.net forms认证的相关方法,写一个user token cookie,有了这个cookie,系统就会知道当前用户是谁,以及他已经通过了认证
ShuGuang says (15:46):
如果LiveIDMembershipProvider.ValidateUser()发现这个用户从live返回的唯一id在那个用户list里面找不到,那么就返回false,LiveIDAuthHandler.aspx就会弹一个alert,说,好吧,你通过了Live认证,但是你不是我这个网站的用户,请你注册一下,然后,转向到RegisterPendingMember.aspx页面
北京㊣umboy says (15:48):
本地都保存用的什么信息?
本地都保存用户的什么信息?
ShuGuang says (15:50):
RegisterPendingMember.aspx显示一个textbox,让用户填写,用户填写了,就会向保存用户信息的list写一个新的list item进去,当然,内容审批状态是待定。用户在这个页面上需要填写两项信息,昵称,和邮件地址
M群-赏梅斋-MOSS开发 says (15:50):
【系统提示】Steve.Joe申请加入群,理由是:来自SharePoint技术群,这里是讨
输入:
/ty zhoucengchao@hotmail.com
/jj zhoucengchao@hotmail.com
 
  M群-赏梅斋-MOSS开发 is inviting you to start M群控制面板. Do you want to Accept (Alt+C) or Decline (Alt+D) the invitation?
 
ShuGuang says (15:50):
那个list里面主要就记录这个用户的live唯一id、昵称、邮件地址
北京㊣Spirit says (15:50):
/ty zhoucengchao@hotmail.com
M群-赏梅斋-MOSS开发 says (15:50):
【系统提示】有新用户 Steve.Joe 加入群中
【系统提示】安装MSN群组件,不用手动输入指令
http://www.xiaoi.com/alerts/index.html?page=mqgnzq
十一™@台北 says (15:51):
List 要怎麼導進SSP裡?
ShuGuang says (15:51):
管理员可以在那个保存用户信息的list里面审批通过这个用户,这样,下次用户登录的时候,就能够通过认证了
LiveIDMembershipProvider提供给sharepoint的用户名实际上是用户自己填写的昵称,而不是那个live唯一id
ShuGuang says (15:52):
所以,用户登录后,在右上角会显示,“欢迎 [用户自己填写的昵称]”,因为sharepoint认为这个昵称就是用户名
ShuGuang says (15:53):
sharepoint里面的SPUser.Loginname就等于这个用户昵称了。
北京㊣umboy says (15:53):
那本地保存时以什么作为索引ID,live唯一id?
M群-赏梅斋-MOSS开发 says (15:53):
【系统提示】Steve.Joe将昵称更改为[上海]Steve
北京㊣umboy says (15:53):
那就可能重复了吧?
有重名的可能了吧?
ShuGuang says (15:53):
那个list,必须保证live id是唯一的,用户昵称也是唯一的
因为这个用户昵称要提供给sharepoint做用户名的
北京㊣umboy says (15:53):
OK
ShuGuang says (15:54):
在LiveIDMembershipProvider.CreateUser()里面,大家可以看看那个代码
十一™@台北 says (15:54):
那要靠光光的眼力去檢查 ... 看漏了就糗了
上海㊣NEO says (15:54):
代码在哪里可以看到
十一™@台北 says (15:55):
不過做個工作流應該就可以搞定
ShuGuang says (15:55):
sharepoint接收到这个用户名之后,实际上会自己再存储到content db里面,这个用户就成为sharepoint站点用户了
十一™@台北 says (15:56):
userinfo 是第一次登入會去儲存 ? 以前沒想過...難怪有的有 , 有的沒有...
北京㊣umboy says (15:58):
ShuGuang 讲完了否?可以问问问题了么?
ShuGuang says (15:59):
站点管理员还需要在sharepoint的站点管理里面,授权这个用户有相应的权限
ShuGuang says (16:00):
当管理员sharepoint的那个用户输入控件里面输入用户名,然后点击右方的那个用户验证按钮,sharepoint还是会调用LiveIDMembershipProvider里面的方法,来进行用户名验证
sharepoint还是会调用LiveIDMembershipProvider里面的方法,来进行用户名验证,以确认确实有这个用户存在
ShuGuang says (16:01):
介绍完了。大家提问吧
北京㊣Spirit says (16:01):
/who
北京㊣umboy says (16:01):
辛苦
M群-赏梅斋-MOSS开发 says (16:01):
【系统提示】
1. LIBIDO    在线
2. 杨博宇    在线
3. 刘东(北京送变电 69351040-2410)    在线
4. 上海㊣ 王健    在线
5. 苏州㊣Cheney Chen    在线
6. cookie19800208@hotmail.com    在线
7. 沈阳㊣王骁悍    在线
8. 城市兔子    在线
9. Ken Zhao @Shanghai    在线
10.  Bruce Lee 生命在于折腾    在线
11. 北京㊣姜庆    在线
12. +1    在线
13. 北京㊣喜欢阳光    在线
14. -汪礼雾-    在线
15. 北京㊣雪茹是    在线
16. shanhx@163.com (E-mail Address Not Verified)    在线
17. 大连㊣周子龙    在线
18. [上海]Steve    在线
19. 北京㊣ 小*Ben*    在线
20. 娄国学(POLO)-13917001781    在线
21. 星宿(朱贺)    在线
22.   seabird-     在线
23. 上海㊣表情    在线
24. jianyi0115@hotmail.com    在线
25. LEO    在线
26. 北京㊣皮皮    在线
27. 天津㊣的小熊    在线
28. 西安㊣UnName    在线
29. Hugh@Beijing    在线
30. [北京]AA-Hovic    在线
31. 大连㊣银烨妖瞳    在线
32. 蘇州㊣uli    在线
33. 南京㊣Dosboy(Ricky Zhang)    在线
34. liqingxue    在线
35. Xie Guofeng-。    在线
36. 北京㊣Y.M    在线
37. yier_一个人漂泊    在线
38. 厉光宇    在线
39. ShuGuang    在线
40. 广州@攻城    在线
41. 深圳㊣漫步人生    在线
42. Windie Chai@Beijing    在线
43.   梁风飚 - 装不了Turbo Memory,郁闷    在线
44. Spirit    在线
45. 北京@阿勇    在线
46. myelectronicmail@msn.com    在线
47. 张弛(发条木偶)@长春 | 搞瘫一个Cluster    在线
48. 骆建峰    在线
49. .fishking    在线
50. 广州㊣dann    在线

在线79人/共190人输入/next查看下一页
【系统提示】安装MSN群组件,不用手动输入指令
http://www.xiaoi.com/alerts/index.html?page=mqgnzq
ShuGuang says (16:01):
源码下载:http://wiki.msotec.net/Documents/LiveIDSecurities.zip
ShuGuang says (16:02):
Live ID SDK:http://msdn2.microsoft.com/en-us/library/bb404787.aspx
北京㊣Spirit says (16:02):
谢谢Kaneboy又一次精彩的介绍!大家鼓掌!
Windie Chai@Beijing says (16:02):
啪啪啪啪
北京㊣皮皮 says (16:02):
呱呱唧唧
上海㊣NEO says (16:02):
 
ShuGuang says (16:02):
至于sharepoint使用定制的membership provider,网上已经有很多文章了
ShuGuang says (16:03):
这个方法,还有一个问题,MOSS中有User Profile这个东东,由于我们使用了定制的membership provider,所以这些用户信息不会被自动导入到User Profile里面
北京㊣umboy says (16:03):
我问第一个问题:MOSS与RMS集成时,必须用AD验证才能实现对OFFCIE文档权限细粒度的控制?那么我们是否可以用LIVE ID做验证来实现呢?
这样就可以在非域环境里实现文档权限控制了。
ShuGuang says (16:03):
sharepoint可以搜索用户,但是前提就是,这个用户要在User Profile里面有信息。
上海㊣NEO says (16:04):
shuguang,你是用.net 2008做的?
ShuGuang says (16:04):
解决方法是可以自己写一个程序(Timer Job最好),定时将那个存放用户的List里面的用户信息导入到User Profile中
对,VS2008项目
十一™@台北 says (16:04):
感謝光光回答...
上海㊣NEO says (16:04):
怪不得05打不开
北京㊣umboy says (16:05):
 umboy 说:
我问第一个问题:MOSS与RMS集成时,必须用AD验证才能实现对OFFCIE文档权限细粒度的控制?那么我们是否可以用LIVE ID做验证来实现呢?
这样就可以在非域环境里实现文档权限控制了。
ShuGuang 给说说
北京㊣Spirit says (16:05):
再一次感谢Kaneboy,请大家下线之前为Kaneboy的这次课程打一个分:http://www.msotec.net/poc/mossdev/Lists/Survey1/overview.aspx
上海㊣表情 says (16:06):
ssp中有个用户信息映射可以用上吗
北京㊣umboy says (16:06):

ShuGuang says (16:06):
to umboy:
不能
北京㊣umboy says (16:07):
to ShuGuang:理由
十一™@台北 says (16:07):
umboy : LiveID也是表單驗證 , 只是來源不一樣而已...如果一定要windows 驗證才有用 , 那這個應該也是沒用
ShuGuang says (16:08):
sharepoint里面内置的那个IRM Protector,应该不能处理使用Live ID验证的场景。虽然理论上,我们可以通过写一个定制的IRM Protector来实现
北京㊣umboy says (16:08):
但我印象中RMS用LiveID也是可以的
恩。
十一™@台北 says (16:09):
那是兩回事吧....
集成了RMS後權限就被sharepoint 接管了
北京㊣Spirit says (16:09):
请大家下线之前为Kaneboy的这次课程打一个分:http://www.msotec.net/poc/mossdev/Lists/Survey1/overview.aspx
北京㊣umboy says (16:10):
十一,象文档的打印次数这样的权限控制还是RMS来管的吧?
十一™@台北 says (16:11):

打印是
好像只剩打印跟另一個什麼功能
北京㊣umboy says (16:11):
我就是说的这样的权限
打印,截至日期,另存为,考屏等
北京㊣Spirit says (16:11):
只有九个人听了Kaneboy的课吗?应该不止吧?大家给他打个分吧http://www.msotec.net/poc/mossdev/Lists/Survey1/overview.aspx
十一™@台北 says (16:11):
其他的編輯什麼的都被sharepoint 接手了
十一™@台北 says (16:12):
Spirti 我去評分...怎麼五題在一起?
西安㊣UnName says (16:12):
肯定不止
翟兴亮 says (16:12):
晕 结束了?
北京㊣皮皮 says (16:12):
打分了 没名字
ShuGuang says (16:12):
结束了结束了
翟兴亮 says (16:12):
不是吧
我以为是4点
星宿(朱贺) says (16:12):
打分了打分了
翟兴亮 says (16:12):
my god
!!
ShuGuang says (16:13):
spirit应该会将记录发布到网上
十一™@台北 says (16:13):
翟兴亮 : 會節錄的...別傷心
北京㊣皮皮 says (16:13):
到msn群空间看记录就可以啦
北京㊣umboy says (16:13):
我做了记录
翟兴亮 says (16:13):

北京㊣Spirit says (16:13):
大家登录后打分就会有名字了。。。。
北京㊣Y.M says (16:13):
是不是只要这个网站申请了liveid服务,所有注册了live id的身份都会产生一个基于这个网站的ID?只是有些注册了有些没注册??
翟兴亮 says (16:13):
有记录?

转载于:https://www.cnblogs.com/shangmeizhai/archive/2008/01/03/1024653.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值