Single Sign on (SSO) Using Cookie in asp.net
Single Sign on (SSO) Using Cookie in asp.netThere are various ways to use Single Sign on(SSO) in asp.net web application. We can use cookies, session (state server), SAML and web services etc. Now we would like to give a brief overview of how to use cookie to implement Single Sign on(SSO) in...
There are various ways to use Single Sign on(SSO) in asp.net web application. We can use cookies, session (state server), SAML and web services etc. Now we would like to give a brief overview of how to use cookie to implement Single Sign on(SSO) in asp.net web application.
Assume that we have two web application hosted on different virtual directory but under same domain. As for example, our root domain is: http://www.cookietest.com and
Other two virtual directory hosted under this domain are
http://www.cookietest.com/cookiesite1/Login.aspx
http://www.cookietest.com/cookiesite2/Default.aspx
If we login successfully in cookiesite1 then it writes the login information in cookie and now opens another tab or a new window in same browser (IE, FF whatever you like). Place this address http://www.cookietest.com/cookiesite2/Default.aspx in address bar logged in automatically in cookiesite2. When we try to access in cookiesite2 –> Default.aspx it checks the login information from cookie. If desired value found in cookie then you logged in automatically. Remember you need to enable cookie in your browser for all of these activities.
Configuration:
1. Web.Config
Before coding we need to some configure in our web.config file. Though cookiesite1 and cookiesite2 are in different virtual directory their web.config file must contains the same machine validationKey, decryptionKey and validation.
Like this,
<machineKey validationKey="282487E295028E59B8F411ACB689CCD6F39DDD21E6055A3EE480424315994760ADF21B580D8587DB675FA02F79167413044E25309CCCDB647174D5B3D0DD9141"
decryptionKey="8B6697227CBCA902B1A0925D40FAA00B353F2DF4359D2099"
validation="SHA1" />
2.IIS
In IIS->Directory security tab add the "ASPNET Machine Account" user and set the full rights.
Coding:
Write cookie after login complete:
Place this code in cookiesite1->Login.aspx.cs
If(login_Successful)
{
//Create a new cookie, passing the name into the constructor
HttpCookie cookie = new HttpCookie(“strCookieName”);
//Set the cookies value
cookie.Value =”set_cookie_value”;
//Set the cookie to expire in 5 minute
DateTime dtNow = DateTime.Now;
TimeSpan tsMinute = new TimeSpan(0, 0, 5, 0);
cookie.Expires = dtNow + tsMinute;
//Add the cookie
Response.Cookies.Add(cookie);
Response.Write("Cookie written. ");
}
Check cookie is exist or not on page_load
Place this code in cookiesite2->Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
//Grab the cookie
HttpCookie cookie = Request.Cookies[“strCookieName”];
//Check to make sure the cookie exists
if (cookie != null)
{
ReadCookie();
}
Else
{
lblCookie.Text = "Cookie not found. ";
}
}
Read cookie when page load:
Add this method in cookiesite2->Default.aspx.cs
<pre>protected void ReadCookie()
{
//Get the cookie name the user entered
//Grab the cookie
HttpCookie cookie = Request.Cookies[“strCookieName”];
//Check to make sure the cookie exists
if (cookie == null)
{
lblCookie.Text = "Cookie not found. ";
}
else
{
//Write the cookie value
String strCookieValue = cookie.Value.ToString();
lblCookie.Text = "The cookie contains: " + strCookieValue + "";
}
}</pre>
Test the application in <b>localhost</b>.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端