ASP.NET跨应用程序进行登录的解决
2006-04-26 09:26
295 查看
最近一个朋友问我一个问题:
如何可以将ASPdotNET Forum2.0放到他的一个项目中(好象网上也有人讨论过如何将dotText和ASPdotNET Forum等开源项目集成起来的),他原来的项目已经有一套用户登录机制了,而且用户数据库也是现成的,如何使得在他原来系统上登录后就可以直接转到Forum上,而又不需要再次输入用户信息呢?刚开始感觉a piece of cake <authentication mode="Forms">
<forms name=".AspNetForums" protection="Encryption" timeout="60" loginUrl="test1.aspx" />
< SPAN>authentication>
testLogon2的Web.config对应部分
<authentication mode="Forms">
<forms name=".AspNetForums" protection="Encryption" timeout="60" loginUrl="\testLogon\test1.aspx" />
< SPAN>authentication>
2.的增加是必须的
为保证两边两边应用对cookie的处理和读取一致,这个属性是必须的,且要相同
<machineKey
validationKey= "C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey= "8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1">
< SPAN>machineKey>
3.MSDN虽然要查,但不可以完全依靠,特别是代码
在MSDN中,关于machineKey的代码如下:
<configuration>
<system.web>
<authentication>
<forms name=".ASPXAUTH"
loginUrl="logon.aspx"
protection="all" PAN>>
???????????????????timeout="30"?
???????????????????path="/"?>???PAN>?Path?must?have?a?compatible?scope.-->
< SPAN>authentication>
PAN>?Validation?and?decryption?keys?must?exactly?match?and?cannot
?????????????be?set?to?"AutoGenerate".?The?validation?algorithm?must?also?
?????????????be?the?same.?-->
<machineKey>
validationKey= "C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey= "8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1"
isolateApplications="false"
< SPAN>machineKey>
< SPAN>system.web>
< SPAN>configuration>
但显然有着错误的,大家编译一下就知道了,格式错了,而且isolateApplication也不是这样用的
4.为保证两边读到的cookie一致,不要用isolateApplication,它使得各自用自己的cookie了。
5.关于Global.asax的注意,对于Web.config中authentication的节点会触发Global.asax中的事件的,对应
函数是
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
6.研究一下ASPdotNetForum2.0代码发现,Global.asax不见了,而在它的配置文件中多了一项
<httpModules>
<add name="AspNetForums" type="AspNetForums.ForumsHttpModule, AspNetForums.Components" />
< SPAN>httpModules>
是的,看一下ForumsHttpModule的源码,结构和Global.asax基本一样,一样有个事件触发函数
private void Application_AuthenticateRequest(Object source, EventArgs e)
下面不用我多说了吧?具体该如何做到和dotNetForum一起达到SSO的目标的答案已经出来了
![](http://www.cnblogs.com/Emoticons/tongue_smile.gif)
例子代码下载
如何可以将ASPdotNET Forum2.0放到他的一个项目中(好象网上也有人讨论过如何将dotText和ASPdotNET Forum等开源项目集成起来的),他原来的项目已经有一套用户登录机制了,而且用户数据库也是现成的,如何使得在他原来系统上登录后就可以直接转到Forum上,而又不需要再次输入用户信息呢?刚开始感觉a piece of cake <authentication mode="Forms">
<forms name=".AspNetForums" protection="Encryption" timeout="60" loginUrl="test1.aspx" />
< SPAN>authentication>
testLogon2的Web.config对应部分
<authentication mode="Forms">
<forms name=".AspNetForums" protection="Encryption" timeout="60" loginUrl="\testLogon\test1.aspx" />
< SPAN>authentication>
2.的增加是必须的
为保证两边两边应用对cookie的处理和读取一致,这个属性是必须的,且要相同
<machineKey
validationKey= "C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey= "8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1">
< SPAN>machineKey>
3.MSDN虽然要查,但不可以完全依靠,特别是代码
在MSDN中,关于machineKey的代码如下:
<configuration>
<system.web>
<authentication>
<forms name=".ASPXAUTH"
loginUrl="logon.aspx"
protection="all" PAN>>
???????????????????timeout="30"?
???????????????????path="/"?>???PAN>?Path?must?have?a?compatible?scope.-->
< SPAN>authentication>
PAN>?Validation?and?decryption?keys?must?exactly?match?and?cannot
?????????????be?set?to?"AutoGenerate".?The?validation?algorithm?must?also?
?????????????be?the?same.?-->
<machineKey>
validationKey= "C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey= "8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1"
isolateApplications="false"
< SPAN>machineKey>
< SPAN>system.web>
< SPAN>configuration>
但显然有着错误的,大家编译一下就知道了,格式错了,而且isolateApplication也不是这样用的
4.为保证两边读到的cookie一致,不要用isolateApplication,它使得各自用自己的cookie了。
5.关于Global.asax的注意,对于Web.config中authentication的节点会触发Global.asax中的事件的,对应
函数是
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
6.研究一下ASPdotNetForum2.0代码发现,Global.asax不见了,而在它的配置文件中多了一项
<httpModules>
<add name="AspNetForums" type="AspNetForums.ForumsHttpModule, AspNetForums.Components" />
< SPAN>httpModules>
是的,看一下ForumsHttpModule的源码,结构和Global.asax基本一样,一样有个事件触发函数
private void Application_AuthenticateRequest(Object source, EventArgs e)
下面不用我多说了吧?具体该如何做到和dotNetForum一起达到SSO的目标的答案已经出来了
![](http://www.cnblogs.com/Emoticons/tongue_smile.gif)
例子代码下载
相关文章推荐
- ASP.NET跨应用程序进行登录的解决
- ASP.NET跨应用程序进行登录的解决
- ASP.NET跨应用程序进行登录的解决
- ASP.NET跨应用程序进行登录的解决
- ASP.NET跨应用程序进行登录的解决
- ASP.NET跨应用程序进行登录的解决 (摘)
- [转]ASP.NET跨应用程序进行登录的解决
- ASP.NET跨应用程序进行登录的解决
- ASP.NET跨应用程序进行登录的解决
- ASP.NET跨应用程序进行登录的解决
- 关于asp.net网站发布后,使用登录控件和注册控件时出现“数据库只读,无法进行数据更新”的解决方法
- 解决 Asp.Net Forums 与现有Web系统 统一登录的方法(:--))
- 解决:用户 'NT AUTHORITYNETWORK SERVICE' 登录失败 ASP.NET程序
- asp.net“服务器应用程序不可用” 解决方法【转】
- ASP.Net 服务器应用程序不可用 解决方法
- asp.net“服务器应用程序不可用” 解决方法
- Asp.net 2.0在Windows 2003 Server 上配置Microsoft Excel、Microsoft Word应用程序权限时 error: 8000401a 的解决方法!
- asp.net获取session进行简单的用户登录验证。
- 访问asp.net应用程序出现“服务器应用程序不可用“的解决办法
- ASP.NET 中使用WebServer进行调试时,自定义的Identity出现 SerializationException的解决方法