public ActionResult Login(string returnUrl) { ViewBag.ReturnUrl = returnUrl; SsoClient ssoClient = new SsoClient(); if (!ssoClient.IsLogined) { return(Redirect(SsoHelper.SSOLoginUrl)); } if (SsoHelper.HasReturnUrl()) { return(Redirect(SsoHelper.ReturnUrl)); } return(View()); }
public async void PasswordTest() { var client = new SsoClient { Server = "https://localhost:5001", //Server = "https://sso.newlifex.com", AppId = "test", Secret = "test1234", }; var file = "..\\..\\Bin\\Keys\\SsoSecurity.pubkey".GetFullPath(); if (File.Exists(file)) { client.SecurityKey = File.ReadAllText(file); } var token = await client.GetToken("admin", "admin"); Assert.NotNull(token); Assert.NotEmpty(token.AccessToken); Assert.NotEmpty(token.RefreshToken); Assert.Equal(7200, token.Expire); Assert.Equal(3, token.AccessToken.Split('.').Length); var user = await client.GetUser(token.AccessToken) as User; Assert.NotNull(user); Assert.Equal(1, user.ID); Assert.Equal("admin", user.Name); Assert.Equal("管理员", user.DisplayName); var jwt = new JwtBuilder(); jwt.Parse(token.AccessToken); Assert.Equal("test", jwt.Audience); Assert.Equal("admin", jwt.Subject); var prv = new TokenProvider(); var rs = prv.TryDecode(token.RefreshToken, out var name, out var expire); Assert.False(rs); var ss = name.Split('#'); Assert.Equal("test", ss[0]); Assert.Equal("admin", ss[1]); }
protected async void Page_Load(object sender, EventArgs e) { var ssoClient = new SsoClient(); var tokenResponse = await ssoClient.RequestTokenAsync("goodsam11", "5473d95926b2d0e00730786a"); if (tokenResponse.StatusCode.ToString() == "Ok") { Token = tokenResponse.Token; } else { Message.InnerHtml += "</br>"; Message.InnerHtml += tokenResponse.TokenResponseVersion + "</br>"; Message.InnerHtml += tokenResponse.StatusCode.ToString() + "</br>"; Message.InnerHtml += tokenResponse.RequestStatusFlag.ToString() + "</br>"; Message.InnerHtml += tokenResponse.Token + "</br>"; Message.InnerHtml += tokenResponse.TokenDurationInSeconds.ToString() + "</br>"; } }
public async Task <ActionResult> LoginToAbaqis() { var ssoClient = new SsoClient(); var tokenResponse = await ssoClient.RequestTokenAsync("goodsam11", "5473d95926b2d0e00730786a"); var response = await ssoClient.AbaqisLoginPostAsync(tokenResponse.Token, "http://www.yahoo.com"); var cookieToSet = response.Headers.GetValues("Set-Cookie").FirstOrDefault(); if (cookieToSet != null) { var cookies = cookieToSet.Split(';'); foreach (var cookie in cookies) { var cookiePair = cookie.Split('='); Response.Cookies.Add(new HttpCookie(cookiePair[0], cookiePair.Length == 2 ? cookiePair[1] : string.Empty)); } } return(new RedirectResult(response.Headers.Location.ToString())); }
public async void ClientTest() { var client = new SsoClient { Server = "https://localhost:5001", //Server = "https://sso.newlifex.com", AppId = "test", Secret = "test1234", }; var token = await client.GetToken("mydevice"); Assert.NotNull(token); Assert.NotEmpty(token.AccessToken); Assert.NotEmpty(token.RefreshToken); Assert.Equal(7200, token.Expire); Assert.Equal(3, token.AccessToken.Split('.').Length); var ex = await Assert.ThrowsAsync <ApiException>(() => client.GetUser(token.AccessToken)); Assert.NotNull(ex); Assert.Equal(500, ex.Code); Assert.Equal("用户[mydevice]不存在", ex.Message); var jwt = new JwtBuilder(); jwt.Parse(token.AccessToken); Assert.Equal("test", jwt.Audience); Assert.Equal("mydevice", jwt.Subject); var prv = new TokenProvider(); var rs = prv.TryDecode(token.RefreshToken, out var name, out var expire); Assert.False(rs); var ss = name.Split('#'); Assert.Equal("test", ss[0]); Assert.Equal("mydevice", ss[1]); }