コード例 #1
0
 public HrdViewModel(SignInRequestMessage message, IEnumerable <IdentityProvider> idps)
 {
     OriginalSigninUrl = message.WriteQueryString();
     Providers         = idps.Select(x => new HRDIdentityProvider {
         DisplayName = x.DisplayName, ID = x.Name
     }).ToArray();
 }
コード例 #2
0
        private static void AuthenticateUser(AuthorizationContext context)
        {
            // TODO: validate/sanitize querystring input (http://msdn.microsoft.com/en-us/library/bb355989.aspx)
            var organizationName = (string)context.RouteData.Values["organization"];

            if (!string.IsNullOrEmpty(organizationName))
            {
                if (!IsValidTenant(organizationName))
                {
                    throw new ArgumentException(string.Format(CultureInfo.CurrentUICulture, "'{0}' is not a valid tenant.", organizationName));
                }

                var returnUrl = GetReturnUrl(context.RequestContext);

                // user is not authenticated and it's entering for the first time
                var fam    = FederatedAuthentication.WSFederationAuthenticationModule;
                var signIn = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm)
                {
                    Context   = returnUrl.ToString(),
                    HomeRealm = RetrieveHomeRealmForTenant(organizationName)
                };

                context.Result = new RedirectResult(signIn.WriteQueryString());
            }
        }
コード例 #3
0
        private ActionResult RedirectToWSFedIdentityProvider(IdentityProvider identityProvider, SignInRequestMessage request)
        {
            var message = new SignInRequestMessage(new Uri(identityProvider.WSFederationEndpoint), ConfigurationRepository.Global.IssuerUri);

            SetContextCookie(request.Context, request.Realm, identityProvider.WSFederationEndpoint);

            return(new RedirectResult(message.WriteQueryString()));
        }
コード例 #4
0
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            SignInRequestMessage signInRequestMessage = new SignInRequestMessage(new Uri("https://andras1/idsrv/issue/wsfed"), "http://localhost:2533/");
            ViewBag.StsSignInUrl = signInRequestMessage.WriteQueryString();

            return View();
        }
コード例 #5
0
 public ActionResult SignIn(string returnUrl)
 {
     var fam = FederatedAuthentication.WSFederationAuthenticationModule;
     fam.SignIn(Guid.NewGuid().ToString());
     var signInRequestMessage = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm, returnUrl);
     var parameters = HmacHelper.CreateHmacRequestParametersFromConfig(Consts.PermissionHmacSettingsPrefix);
     parameters.ForEach(signInRequestMessage.Parameters.Add);
     return new RedirectResult(signInRequestMessage.WriteQueryString());
 }
コード例 #6
0
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            SignInRequestMessage signInRequestMessage = new SignInRequestMessage(new Uri("https://andras1/idsrv/issue/wsfed"), "http://localhost:2533/");

            ViewBag.StsSignInUrl = signInRequestMessage.WriteQueryString();

            return(View());
        }
コード例 #7
0
        public ActionResult SignIn()
        {
            WsFederationConfiguration config = FederatedAuthentication.FederationConfiguration.WsFederationConfiguration;
            string callbackUrl = Url.Action("Index", "Home", routeValues: null, protocol: Request.Url.Scheme);

            SignInRequestMessage signinMessage = new SignInRequestMessage(new Uri(config.Issuer), callbackUrl);

            signinMessage.SetParameter("wtrealm", IdentityConfig.Realm ?? config.Realm);

            return(new RedirectResult(signinMessage.WriteQueryString()));
        }
コード例 #8
0
        private static void AuthenticateUser(AuthorizationContext context, string realm)
        {
            // user is not authenticated and it's entering for the first time
            var fam = FederatedAuthentication.WSFederationAuthenticationModule;
            var signIn = new SignInRequestMessage(new Uri(fam.Issuer), realm ?? fam.Realm)
            {
                Context = "ru=" + context.HttpContext.Request.Path
            };

            context.Result = new RedirectResult(signIn.WriteQueryString());
        }
コード例 #9
0
        private static void AuthenticateUser(AuthorizationContext context, string realm)
        {
            // user is not authenticated and it's entering for the first time
            var fam    = FederatedAuthentication.WSFederationAuthenticationModule;
            var signIn = new SignInRequestMessage(new Uri(fam.Issuer), realm ?? fam.Realm)
            {
                Context = "ru=" + context.HttpContext.Request.Path
            };

            context.Result = new RedirectResult(signIn.WriteQueryString());
        }
コード例 #10
0
        public ActionResult Login()
        {
            // Redirect to AAD for login.
            if (!Request.IsAuthenticated)
            {
                WSFederationAuthenticationModule WsFam  = FederatedAuthentication.WSFederationAuthenticationModule;
                SignInRequestMessage             signIn = new SignInRequestMessage(new Uri(WsFam.Issuer), WsFam.Realm, WsFam.Reply);
                return(new RedirectResult(signIn.WriteQueryString()));
            }

            return(new RedirectResult("/"));
        }
コード例 #11
0
        private string GetFederatedSignInRedirectUrl(string returnUrl)
        {
            WSFederationAuthenticationModule fam = FederatedAuthentication.WSFederationAuthenticationModule;

            var appUrl        = GetAppUrl(this.HttpContext);
            var signInRequest = new SignInRequestMessage(new Uri(fam.Issuer), appUrl)
            {
                Context = Uri.EscapeDataString(returnUrl),
                Reply   = string.Concat(appUrl, "Account/LogOn/")
            };

            return(signInRequest.WriteQueryString());
        }
コード例 #12
0
        private void RequestAuthentication(HttpContextBase httpContext, string identityProviderUrl, string realm, string replyUrl)
        {
            var signIn = new SignInRequestMessage(new Uri(identityProviderUrl), realm)
            {
                Context = replyUrl,
                Reply   = replyUrl
            };

            var redirectUrl = signIn.WriteQueryString();

            httpContext.Response.Redirect(redirectUrl, false);
            httpContext.ApplicationInstance.CompleteRequest();
        }
コード例 #13
0
    private static void AuthenticateUser(AuthorizationContext filterContext)
    {
        var organization = filterContext.RouteData.Values["organization"] as String ?? "mock.issuer.1";

        var returnUrl = GetReturnUrl(filterContext.RequestContext);
        var fam = FederatedAuthentication.WSFederationAuthenticationModule;
        var signIn = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm)
        {
            Context = returnUrl.ToString(),
            HomeRealm = GetHomeRealm(organization)
        };
        filterContext.Result = new RedirectResult(signIn.WriteQueryString());
    }
コード例 #14
0
ファイル: WSFedHandler.cs プロジェクト: AshD/authbridge
        private void RequestAuthentication(HttpContextBase httpContext, string identityProviderUrl, string realm, string replyUrl)
        {
            var signIn = new SignInRequestMessage(new Uri(identityProviderUrl), realm)
            {
                Context = replyUrl,
                Reply = replyUrl
            };

            var redirectUrl = signIn.WriteQueryString();

            httpContext.Response.Redirect(redirectUrl, false);
            httpContext.ApplicationInstance.CompleteRequest();
        }
コード例 #15
0
ファイル: HomeController.cs プロジェクト: Wwawawa/iac-aspnet
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            var signIn = new SignInRequestMessage(
                new Uri("https://mysts/wsfed"),
                "http://myapp");

            //using below code, you can pick up some values from config, that you could provide some values dynamically.
            //FederatedAuthentication.FederationConfiguration.WsFederationConfiguration.
            ViewBag.SignInUrl = signIn.WriteQueryString();

            return(View());
        }
        private static void AuthenticateUser(AuthorizationContext context)
        {
            var returnUrl = GetReturnUrl(context.RequestContext);

            // user is not authenticated and it's entering for the first time
            var fam = FederatedAuthentication.WSFederationAuthenticationModule;
            var signIn = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm)
            {
                Context = returnUrl.ToString(),
                Reply = returnUrl.ToString()
            };

            context.Result = new RedirectResult(signIn.WriteQueryString());
        }
コード例 #17
0
        public static void LogOn(string issuer = null, string realm = null, string homeRealm = null)
        {
            WSFederationAuthenticationModule fam = FederatedAuthentication.WSFederationAuthenticationModule;
            
            var signInRequest = new SignInRequestMessage(new Uri(issuer ?? fam.Issuer), realm ?? fam.Realm)
            {
                AuthenticationType = fam.AuthenticationType,
                Context = GetReturnUrl(),
                Freshness = fam.Freshness,
                HomeRealm = homeRealm ?? fam.HomeRealm,
                Reply = fam.Reply
            };

            HttpContext.Current.Response.Redirect(signInRequest.WriteQueryString(), false);
            HttpContext.Current.ApplicationInstance.CompleteRequest();
        }
コード例 #18
0
        /// <summary>
        /// Force RP/STS style authentication flow to begin
        /// </summary>
        /// <param name="context"></param>
        private static void AuthenticateUser(AuthorizationContext context)
        {
            var returnUrl = GetReturnUrl(context.RequestContext);

            if (!context.HttpContext.User.Identity.IsAuthenticated)
            {
                // user is not authenticated and it's entering for the first time
                var fam    = FederatedAuthentication.WSFederationAuthenticationModule;
                var signIn = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm)
                {
                    Reply = returnUrl.ToString()
                };

                context.Result = new RedirectResult(signIn.WriteQueryString());
            }
        }
コード例 #19
0
        public ActionResult Logon()
        {
            if (User.Identity.IsAuthenticated)
            {
                return(View("Index"));
            }

            var fam = FederatedAuthentication.WSFederationAuthenticationModule;

            var signIn = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm)
            {
                Context = fam.Realm
            };

            return(Redirect(signIn.WriteQueryString()));
        }
        private static void AuthenticateUser(AuthorizationContext context)
        {
            var socialIP = (string)context.RouteData.Values["socialip"];

            if (!string.IsNullOrEmpty(socialIP))
            {
                var fam    = FederatedAuthentication.WSFederationAuthenticationModule;
                var signIn = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm)
                {
                    Context   = GetReturnUrl(context.RequestContext).ToString(),
                    HomeRealm = SocialIdentityProviders.GetHomeRealm(socialIP)
                };

                context.Result = new RedirectResult(signIn.WriteQueryString());
            }
            else
            {
                throw new ArgumentException("Social identity provider not specified");
            }
        }
コード例 #21
0
        private static void RequestAuthentication(HttpContextBase httpContext, string identityProviderUrl, string realm, string replyUrl)
        {
            var signIn = new SignInRequestMessage(new Uri(identityProviderUrl), realm)
            {
                Context = replyUrl,
                Reply   = replyUrl
            };

            var redirectUrl = signIn.WriteQueryString();

            Logger.Info($"RequestAuthentication! redirectUrl: {redirectUrl}");

            try
            {
                httpContext.Response.Redirect(redirectUrl, false);
                httpContext.ApplicationInstance.CompleteRequest();
            }
            catch (Exception ex) when(HttpContext.Current.Response.HeadersWritten)
            {
                Logger.Error("exception while redirect to provider", ex);
            }
        }
コード例 #22
0
        private ActionResult RedirectToWSFedIdentityProvider(IdentityProvider identityProvider, SignInRequestMessage request)
        {
            var message = new SignInRequestMessage(new Uri(identityProvider.WSFederationEndpoint), ConfigurationRepository.Global.IssuerUri);
            SetContextCookie(request.Context, request.Realm, identityProvider.WSFederationEndpoint);

            return new RedirectResult(message.WriteQueryString());
        }
コード例 #23
0
 public HrdViewModel(SignInRequestMessage message, IEnumerable<IdentityProvider> idps)
 {
     OriginalSigninUrl = message.WriteQueryString();
     Providers = idps.Select(x => new HRDIdentityProvider {DisplayName = x.DisplayName, ID = x.Name}).ToArray();
 }
コード例 #24
0
ファイル: AccountController.cs プロジェクト: hmeydac/OnHub
        private string GetFederatedSignInRedirectUrl(string returnUrl)
        {
            WSFederationAuthenticationModule fam = FederatedAuthentication.WSFederationAuthenticationModule;

            var appUrl = GetAppUrl(this.HttpContext);
            var signInRequest = new SignInRequestMessage(new Uri(fam.Issuer), appUrl)
            {
                Context = Uri.EscapeDataString(returnUrl),
                Reply = string.Concat(appUrl, "Account/LogOn/")
            };

            return signInRequest.WriteQueryString();
        }