最佳解答者
ASP.NET Single Sign On 既問題

問題
-
你好
我有2個asp.net 既application
我用緊asp.net 既login control, 所以有2個唔同既asp.net login database,
我想知呢我點想先可以做到single sign on 呢? (login 一次就可以 進入呢2個web application)
2個application 有一部分既 users 係一樣的 其他就唔一樣
2個 asp.net login database 入面有既 role 都唔同名
因為2個asp.net application 個purpose 都唔同
唔知有無方法可以等個user 係application A 度click 條link
就可以 用到application B 個WEBSITE
If the username exists on both Login database?
又唔駛再一次LOGIN先可以入另一個website?
可以比d idea 我應該可以點做嗎?
謝謝大家2008年5月23日 下午 02:10
解答
-
Hi Chi,
The Single Sign On and Membership architectures in ASP.NET 2.0 is perfectly meet your requirement. The key is that you have to make the machineKey attributes of two web apps be the same, then users can just login once and access two web apps.
These articles can help:
Regards,
Colt
2008年5月26日 上午 02:09 -
Hi Chi,
It is hard to say which solution is the best because it depends on the business scenario.
For your case, you may create a generic login page in app1 or other central location.
For the sharing of session info, you can take a look at SQL Session State management in ASP.NET, where you can store session information in DB and share session info across apps. FYI: http://blogs.msdn.com/toddca/archive/2007/01/25/sharing-asp-net-session-state-across-applications.aspx
Regards,
Colt2008年5月27日 下午 04:24
所有回覆
-
Hi Chi,
The Single Sign On and Membership architectures in ASP.NET 2.0 is perfectly meet your requirement. The key is that you have to make the machineKey attributes of two web apps be the same, then users can just login once and access two web apps.
These articles can help:
Regards,
Colt
2008年5月26日 上午 02:09 -
Hi Colt
Sorry I am too dumb, I am not quite understand how to do the following part.
from that article
http://aspalliance.com/1545_Understanding_Single_SignOn_in_ASPNET_20.all
#################
Now you have to set some configuration in this web site. First you have to change loginUrl of your <forms> section, which will be used to redirect an anonymous user to "Login.aspx" web page. But this time it will redirect users to "Login.aspx" page in Aspalliance1 web site.
Listing 5: Setting authentication element in web.config
<authentication mode="Forms">
<forms loginUrl="http://localhost/Aspalliance1/login.aspx" name=".ASPXAUTH"/>
</authentication>
###################
If I changed the loginUrl to another web site, I guess when the session time out and the user click on any link on "Aspalliance2 web site" it would redirect them to "Aspalliance1's login page. Is there any way I could get around it? So when the session timeout it just redirect back to Aspalliance1?
Thanks very much for your help.2008年5月27日 上午 08:20 -
Hi Colt,
Thanks for your information
Is there any way, I could get around it? like to detect if it just a timeout, it will redirect back to the normal Login page? Otherwise redirect to another application's login page?
Another question, I am wondering it there any way I could obtain the SESSION information as well?
so I could pass the session between 2 applications? I tried it, and it does not seem to do it automatically
Many thanks2008年5月27日 下午 03:07 -
Hi Chi,
It is hard to say which solution is the best because it depends on the business scenario.
For your case, you may create a generic login page in app1 or other central location.
For the sharing of session info, you can take a look at SQL Session State management in ASP.NET, where you can store session information in DB and share session info across apps. FYI: http://blogs.msdn.com/toddca/archive/2007/01/25/sharing-asp-net-session-state-across-applications.aspx
Regards,
Colt2008年5月27日 下午 04:24