ASP.NET MVC 单点登录(Single Signe On) | 您所在的位置:网站首页 › ids单点登录 › ASP.NET MVC 单点登录(Single Signe On) |
一、定义: 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统-【百度百科】 二、非单点登录和单点登录的比较
三、在ASP.NET MVC中实现单点登录:(使用Forms身份验证方式) 1.启用单点登录: 单点登录的关键点:必须在所有web 应用程序的配置文件中的System.Web节点中加入MachineKey节点: 2.创建三个web mvc application:SSO,Web1,Web2:
3.在SSO中: 添加控制器:AccountController.cs: namespace SSO.Controllers { public class MyAccountController : Controller { [AllowAnonymous] public ActionResult Login(string returnUrl) { if (Request.IsAuthenticated) { return RedirectToAction("Index","Home"); } ViewBag.ReturnUrl = returnUrl; return View(); } [AllowAnonymous] [HttpPost] [ValidateAntiForgeryToken] public ActionResult Login(string userName, string password, string returnUrl) { if (FormsAuthentication.Authenticate(userName, password)) { FormsAuthentication.SetAuthCookie(userName, false); if (!string.IsNullOrEmpty(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } } else { ModelState.AddModelError(string.Empty, "Invalid login details"); ViewBag.ReturnUrl = returnUrl; return View(); } } } }创建视图Login.cshtml: @{ ViewBag.Title = "Login"; } Login @using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) { @Html.ValidationSummary() @Html.AntiForgeryToken() @Html.Label("Username") @Html.Editor("UserName") @Html.LabelForModel("Password") @Html.Password("Password") } 在Web.configsystem.web节点下加入:(machinekey生成方式:https://blogs.msdn.microsoft.com/amb/2012/07/31/easiest-way-to-generate-machinekey/) 设置项目PageUrl:4.在Web1 和web2中分别创建HomeController:(加上Authorize attribute) [Authorize] public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } }创建Index.cshtml: @{ ViewBag.Title = "Web App1 Home"; } Web App1 Home Logged in as @User.Identity.Name @{ ViewBag.Title = "Web App2 Home"; } Web App2 Home Logged in as @User.Identity.Name5.启动web1,会自动重定向到http://localhost/SSO/Account/Login?ReturnUrl=%2fWebApp1%2f 输入用户名和密码,登录成功: 再启动Web2,则不会重定向到login 页面,而是到登录成功页面:
|
CopyRight 2018-2019 实验室设备网 版权所有 |