利用。net怎么实现一个单点登录功能

介绍

利用。net怎么实现一个单点登录功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强> 1,共用登陆页代码实现:

代码如下:


保护无效btnLogin_Click(对象发送方,EventArgs e)
{
//认证开的票,跳转到原始请求页面
,,System.Web.Security.FormsAuthentication.RedirectFromLoginPage (“ejiyuan"、虚假);
}


<强>

代码如下:


& lt; !——访问权限控制,在
& lt; authorization>
,,,& lt;否认用户=?“/祝辞
& lt;/authorization>,,,
& lt; !——身份认证方式,在
& lt;身份验证模式=癋orms"在
,,,& lt;形式的名字=?ASPNET"保护=癆ll"enableCrossAppRedirects=皌rue"loginUrl=癓ogin.aspx"timeout=?880”;路径=??域=?local.com"/祝辞
& lt;/authentication>,,
& lt; !——验证算法——在
& lt; machineKey validationKey=癋9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902"decryptionKey=癋9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC"验证=癝HA1"解密=? des"/比;& lt;编译调试=皌rue"/祝辞


<强> 强身份验证/形式节点最重要的两个属性是名字和保护。所有实现单点登录的项目都要是相同的配置就这样,才可以在不同程序中同样的保护级别下读写饼干
当保护属性设置为“All",通过哈希值进行加密和验证数据都存放在Cookie中。默认的验证和加密使用的关键都存储在machine.config文件,我们可以在应用程序的web . config文件覆盖这些值。默认值如下:

& lt; machineKeyvalidationKey=癆utoGenerate, IsolateApps" decryptionKey=?AutoGenerate IsolateApps"验证=癝HA1"/在

IsolateApps表示为每个应用程序生成不同的关键。我们不能使用这个。为了能在多个应用程序中使用相同的关键来加密解密饼干,我们可以移除IsolateApps选项或者更好的方法是在所有需要实现SSO的应用程序的web . config中设置一个具体的关键值:

& lt; machineKey validationKey=癋9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902"decryptionKey=癋9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC"验证=癝HA1"解密=? des"/比;& lt;编译调试=皌rue"/祝辞

如果你使用同样的存储方式,实现SSO只是改动一下web . config而已,必须保证单点中的每个应用程序都有相同的配置,如果单点登录的应用程序是跨不同。net版本的,这里的加密/解密不要使用md5

& lt; machineKey decryptionKey=? b6697227cbca902b1a0925d00faa00b353f2df4359d2099"验证=癕D5"validationKey=?82487 e295028e59b8f411acb689ccd6f39ddd2146055a3ee480424315994760adf21b580d8587db675fa02f7916813044e25309cccdb647174d5b3d0dd9141"/祝辞

<强>

代码如下:


& lt; authorization>
,& lt;否认用户=?“/祝辞
& lt;/authorization>
& lt;身份验证模式=癋orms"在
,,,& lt;形式的名字=?ASPNET"保护=癆ll"enableCrossAppRedirects=皌rue"loginUrl=癶ttp://Sso2.local.com/Login.aspx"timeout=?880”;路径=??域=?local.com"/祝辞
& lt;/authentication>


<强>

代码如下:


公共类SsoLoginRedirectModule: IHttpModule
{
,,,公共空Init (HttpApplication i_application)
,,,{
,,,,,,,//TODO:,添加UploadModule。Init implementation ,,
,,,,,,,i_application。EndRequest +=new EventHandler (i_application_EndRequest);
,,,}

,,,空白i_application_EndRequest(对象发送方,EventArgs e)
,,,{
,,,,,,,如果(HttpContext.Current.Response。StatusCode==302),,HttpContext.Current.Response.RedirectLocation.Contains (FormsAuthentication.LoginUrl))
,,,,,,,{
,,,,,,,,,,,HttpContext.Current.Response。RedirectLocation=FormsAuthentication。LoginUrl +“? ReturnUrl=?+ HttpUtility.UrlEncode (HttpContext.Current.Request.Url.OriginalString);
,,,,,,,}
,,,}

,,,公共空间处理()
,,,{
,,,,,,,//把新NotImplementedException ();
,,,}
}

<强>引用:

代码如下:


& lt; httpModules>
,,,& lt;添加名称=癝soModule"类型=癝soModule。SsoLoginRedirectModule SsoModule",/在
& lt;/httpModules>

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

利用。net怎么实现一个单点登录功能