예제 #1
0
        public static void ConfigureWsFederatedWebsites(IAppBuilder app, IEnumerable <SiteInfo> siteInfoList)
        {
            IEnumerable <WsFederatedSiteInfo> sites =
                siteInfoList.Select(s => new WsFederatedSiteInfo(s)).Where(s => s.IsFederated);

            foreach (WsFederatedSiteInfo site in sites)
            {
                app.MapWhen(
                    ctx => ctx.MapDomain(site.Realm),
                    conf =>
                {
                    CookieAuthentication.ConfigureCookieAuthentication(conf);

                    conf.UseWsFederationAuthentication(
                        new WsFederationAuthenticationOptions
                    {
                        UseTokenLifetime          = true,
                        MetadataAddress           = site.MetadataAddress,
                        Wtrealm                   = "https://" + site.Realm,
                        Wreply                    = site.ReplyUrl,
                        TokenValidationParameters = new TokenValidationParameters
                        {
                            NameClaimType  = site.NameClaimType,
                            ValidAudiences = new List <string> {
                                "https://" + site.Realm.WithPostfix('/')
                            }
                        }
                    });
                });
            }
        }
예제 #2
0
        public static void ConfigureOauthWebsites(IAppBuilder app, IEnumerable <SiteInfo> siteInfoList)
        {
            IEnumerable <OAuthSiteInfo> sites =
                siteInfoList.Select(s => new OAuthSiteInfo(s)).Where(s => s.UsesOauth);

            foreach (OAuthSiteInfo site in sites)
            {
                app.MapWhen(
                    ctx => ctx.MapDomain(site.HostName) && ctx.MapFolder(site.PhysicalFolder),
                    conf =>
                {
                    CookieAuthentication.ConfigureCookieAuthentication(conf);
                    conf.UseOAuthBearerAuthentication(CreateOptionsFromSiteInfo(site));
                });
            }
        }