重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

利用.net怎么实现一个单点登录功能-创新互联

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

创新互联-专业网站定制、快速模板网站建设、高性价比贵池网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式贵池网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖贵池地区。费用合理售后完善,10年实体公司更值得信赖。

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


复制代码 代码如下:


protected void btnLogin_Click(object sender, EventArgs e)
{
//认证开票,跳转到原始请求页面
   System.Web.Security.FormsAuthentication.RedirectFromLoginPage("ejiyuan", false);
}



2,配置文件:


复制代码 代码如下:




   
   


   
  



这里:authentication/forms节点最重要的两个属性是name和protection. 所有实现单点登录的项目都要是相同的配置就这样,才可以在不同程序中同样的保护级别下读写Cookie
当 protection属性设置为 "All",通过Hash值进行加密和验证数据都存放在Cookie中.默认的验证和加密使用的Key都存储在machine.config文件,我们可以在应用程序的Web.Config文件覆盖这些值.默认值如下:

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

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

3,没有登录页的单点登录不需要代码 直接配置就可以了,配置如下


复制代码 代码如下:



 


   



4,登录模块从定向代码封装在httpModules中供其他系统直接调用,这里附上封装代码与引用方法:


复制代码 代码如下:


public class SsoLoginRedirectModule : IHttpModule
{
    public void Init(HttpApplication i_application)
    {
        // TODO:  Add UploadModule.Init implementation   
        i_application.EndRequest += new EventHandler(i_application_EndRequest);
    }

    void i_application_EndRequest(object sender, EventArgs e)
    {
        if ((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);
        }
    }

    public void Dispose()
    {
        //throw new NotImplementedException();
    }
}

引用: 


复制代码 代码如下:



   


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


新闻标题:利用.net怎么实现一个单点登录功能-创新互联
标题来源:http://cqcxhl.cn/article/coshed.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP