Ejemplo n.º 1
0
        public Task TheDefaultDefaultShouldBe404()
        {
            var builder = new AppBuilder();
            var app     = builder.Build();

            var helper = new OwinHelper();

            return(app(helper.Env).Then(() => helper.ResponseStatusCode.ShouldBe(404)));
        }
        public async Task <NotificationResult> DeleteUser()
        {
            var user = OwinHelper.CreateUser(User.Identity as ClaimsIdentity);

            await this.UserProvider.DeleteUserWithDependenciesAsync(user);

            this.EmailProvider.SendDeleteConfirmationAsync(user);

            return(new NotificationResult(user.Email));
        }
        public static IdentityUser GetCurrentIdentityUser()
        {
            if (!OwinHelper.GetOwinContext(HttpContext.Current).Request.User.Identity.IsAuthenticated)
            {
                return(null);
            }
            var manager = GetUserManager();

            return(manager.FindById(OwinHelper.GetOwinContext(HttpContext.Current).Request.User.Identity.Name));
        }
        public static IEnumerable <string> CreateAndLoginUser(string username, string email, string name, string userClass = null)
        {
            var loginInfo = OwinHelper.GetOwinContext(HttpContext.Current).Authentication.GetExternalLoginInfo();

            if (loginInfo == null)
            {
                //RedirectOnFail(HttpContext.Current.Response);
                return(new[] { "No External Login information found." });
            }
            return(CreateAndLoginUser(username, email, name, loginInfo.ExternalIdentity.Claims, loginInfo, userClass));
        }
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            User user = await this.UserProvider.FindAsync(context.UserName, context.Password);

            if (user == null)
            {
                context.SetError("invalid_grant", Exceptions.InvalidGrant);
                return;
            }

            OwinHelper.SingIn(context, user);
        }
        public async Task <IHttpActionResult> GetExternalLogin(string provider, string error = null)
        {
            if (error != null)
            {
                return(Redirect(Url.Content("~/") + "#error=" + Uri.EscapeDataString(error)));
            }

            ExternalLoginProvider loginProvider;

            if (!Enum.TryParse <ExternalLoginProvider>(provider, ignoreCase: true, result: out loginProvider) ||
                loginProvider == ExternalLoginProvider.None)
            {
                //Unsupported login provider
                return(InternalServerError());
            }

            if (!User.Identity.IsAuthenticated)
            {
                return(new ChallengeResult(loginProvider, this));
            }

            ExternalLoginModel externalLogin = ExternalLoginModel.FromIdentity(User.Identity as ClaimsIdentity);

            if (externalLogin == null)
            {
                return(InternalServerError());
            }

            if (externalLogin.Provider != loginProvider)
            {
                Request.GetOwinContext().Authentication.SignOut(
                    DefaultAuthenticationTypes.ExternalCookie,
                    OAuthDefaults.AuthenticationType,
                    CookieAuthenticationDefaults.AuthenticationType);
                return(new ChallengeResult(loginProvider, this));
            }

            User user = await this.UserProvider.FindAsync(externalLogin.Provider, externalLogin.ProviderKey);

            if (user != null)
            {
                OwinHelper.SingIn(Request.GetOwinContext(), user, externalLogin);
            }
            else
            {
                OwinHelper.SingIn(Request.GetOwinContext(), externalLogin);
            }

            return(Ok());
        }
Ejemplo n.º 7
0
        public Task Invoke(IDictionary<string, object> env)
        {
            var helper = new OwinHelper(env);
            if (helper.RequestPath.StartsWith(_arg1, StringComparison.OrdinalIgnoreCase))
            {
                helper.ResponseHeaders["Content-Type"] = new[] { "text/plain" };
                using (var writer = new StreamWriter(helper.OutputStream))
                {
                    writer.Write(_arg2);
                }
                return TaskHelpers.Completed();
            }

            // to pass along the request, call the next app
            return _app(env);
        }
Ejemplo n.º 8
0
        public Task Invoke(IDictionary <string, object> env)
        {
            var helper = new OwinHelper(env);

            if (helper.RequestPath.StartsWith(_arg1, StringComparison.OrdinalIgnoreCase))
            {
                helper.ResponseHeaders["Content-Type"] = new[] { "text/plain" };
                using (var writer = new StreamWriter(helper.OutputStream))
                {
                    writer.Write(_arg2);
                }
                return(TaskHelpers.Completed());
            }

            // to pass along the request, call the next app
            return(_app(env));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Extracts user info from identity
        /// </summary>
        /// <param name="identity"></param>
        /// <returns></returns>
        public User TryGetRegisteredUserFromIdentity(ClaimsIdentity claimsIdentity)
        {
            if (claimsIdentity == null || !claimsIdentity.IsAuthenticated)
            {
                return(null);
            }

            //if issued by external => user is not registered, return null
            Claim userIdClaim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);

            if (userIdClaim.Issuer != ClaimsIdentity.DefaultIssuer)
            {
                return(null);
            }

            return(OwinHelper.CreateUser(claimsIdentity));
        }
        public async Task <RegistrationResult> RegisterExternal()
        {
            ExternalLoginModel externalLogin = ExternalLoginModel.FromIdentity(User.Identity as ClaimsIdentity);

            if (externalLogin == null)
            {
                throw new ApiException(Exceptions.ExternalLoginNotFound);
            }

            var user = await this.UserProvider.CreateExternalAsync(externalLogin);

            var userViewModel = UserProvider.MapUserToViewModel(user, externalLogin);

            OwinHelper.SingIn(Request.GetOwinContext(), user, externalLogin);
            var token = OwinHelper.CreateToken(Request.GetOwinContext(), user, externalLogin);

            return(new RegistrationResult(userViewModel, token));
        }
Ejemplo n.º 11
0
        public static Func <AppFunc, AppFunc> Invoke(string arg1, string arg2)
        {
            return(app => env =>
            {
                var helper = new OwinHelper(env);
                if (helper.RequestPath.StartsWith(arg1, StringComparison.OrdinalIgnoreCase))
                {
                    helper.ResponseHeaders["Content-Type"] = new[] { "text/plain" };
                    using (var writer = new StreamWriter(helper.OutputStream))
                    {
                        writer.Write(arg2);
                    }
                    return TaskHelpers.Completed();
                }

                // to pass along the request, call the next app
                return app(env);
            });
        }
        public static bool IsAuthenticatedInMode(Type authType)
        {
            var identity = OwinHelper.GetOwinContext(HttpContext.Current).Request?.User?.Identity;

            return
                (
                (
                    (identity != null)
                    &&
                    (identity.IsAuthenticated)
                )
                &&
                (
                    (authType == null)
                    ||
                    (identity.GetType() == authType)
                )
                );
        }
Ejemplo n.º 13
0
        public static AppFunc Middleware(AppFunc app, string arg1, string arg2)
        {
            return env =>
            {
                var helper = new OwinHelper(env);
                if (helper.RequestPath.StartsWith(arg1, StringComparison.OrdinalIgnoreCase))
                {
                    helper.ResponseHeaders["Content-Type"] = new[] { "text/plain" };
                    using (var writer = new StreamWriter(helper.OutputStream))
                    {
                        writer.Write(arg2);
                    }
                    return TaskHelpers.Completed();
                }

                // to pass along the request, call the next app
                return app(env);
            };
        }
Ejemplo n.º 14
0
        protected override void OnStart(string[] args)
        {
            try
            {
                Quartz.Core.IOC.ObjectContainer.ApplicationStart(new Quartz.Core.IOC.AutoFacContainer());
                if (this.pcScheduler == null)
                {
                    pcScheduler = Scheduler.Create();
                }
                pcScheduler.Start();

                owinHelper = OwinHelper.Create(SysConfig <ProjectInstaller> .OwinPort);
                owinHelper.Start();
            }
            catch (Exception ex)
            {
                Log4.Error(ex.Message);
                Log4.Error(ex.StackTrace);
            }
        }
Ejemplo n.º 15
0
        public void Start()
        {
            List <HttpRoute> routes = new List <HttpRoute>();

            routes.Add(new HttpRoute()
            {
                RouteTemplate = @"{controller}/{action}/{id}"
            });
            owin = new OwinHelper(@"https://127.0.0.1:11508", new OwinStart()
            {
                IsOpenSignalR     = true,
                IsCorss           = true,
                FileServerOptions = null,
                Routes            = routes,
                ResultToJson      = true,
                IsOpenWebApi      = true
            });
            owin.Start();
            Console.WriteLine("CameraHttpServer已启动!");
        }
Ejemplo n.º 16
0
        static void Main(string[] args)
        {
            ObjectContainer.ApplicationStart(new Quartz.Core.IOC.AutoFacContainer());

            //ITest _ITest = ObjectContainer.Current.Resolve<ITest>();
            //_ITest.SayHello();

            //Console.ReadLine();

            var pcScheduler = Scheduler.Create();

            pcScheduler.Start();


            OwinHelper owinHelper = OwinHelper.Create("8099");

            owinHelper.Start();
            Console.ReadLine();

            //Quartz.Core.Log4net.Log4.Info("test.......");
            //Console.ReadLine();
        }
        public static bool CheckAccess(string resourceType, string resource, string action, string userName)
        {
            var            resourceAction = new ResourceAction(resourceType, resource, ClaimTypes.ActionType, action);
            var            user           = IdentityHelper.GetIdentityUserByName(userName);
            var            manager        = IdentityHelper.GetUserManager();
            ClaimsIdentity userIdentity   = null;

            if (user == null)
            {
                log4net.LogManager.GetLogger(nameof(ClaimPermission)).Warn($"A user with username '{userName}' was not found by user manager. Creating Claims Identity from Owin Context Request User.Identity ...");
                userIdentity = (OwinHelper.GetOwinContext(HttpContext.Current).Request.User.Identity as ClaimsIdentity);
            }
            else
            {
                userIdentity = user.GenerateUserIdentityAsync(manager).Result;
            }
            var context = CreateAuthorizationContext(ClaimsPrincipal.Current, resourceAction);
            var claimsAuthorizationManager =
                FederatedAuthentication.FederationConfiguration.IdentityConfiguration.ClaimsAuthorizationManager as AuthorizationManager;

            return(claimsAuthorizationManager.CheckAccess(context, userIdentity));
        }
Ejemplo n.º 18
0
        static void Start()
        {
            Log4.Info("开始启动作业...");

            ObjectContainer.ApplicationStart(new Quartz.Core.IOC.AutoFacContainer());

            ITest _ITest = ObjectContainer.Current.Resolve <ITest>();

            _ITest.SayHello(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "端口8099正在启动...");

            var pcScheduler = Scheduler.Create();
            //pcScheduler.Start();

            OwinHelper owinHelper = OwinHelper.Create("8099");

            owinHelper.Start();

            _ITest.SayHello(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "端口8099启动成功!");

            Console.ReadLine();

            //Log4.Info(string.Format("【{0}】开始执行IJOB的[Execute]...","dddd"));
            //Console.ReadLine();
        }
 public static string GetCurrentUserName()
 {
     return(OwinHelper.GetOwinContext(HttpContext.Current).Request.User.Identity.Name);
 }
        public static bool ValidateExternalLoginAndLogin(out ApplicationUser appUser, out IEnumerable <string> errors)
        {
            errors  = new List <string>();
            appUser = null;
            // Get external login info
            var manager   = GetUserManager();
            var loginInfo = OwinHelper.GetOwinContext(HttpContext.Current).Authentication.GetExternalLoginInfo();

            if (loginInfo == null)
            {
                //RedirectOnFail(HttpContext.Current.Response);
                errors = new[] { "No External Login information found." };
                return(false);
            }
            // Find local user associated with the external login
            var user = manager.Find(loginInfo.Login);

            if (user != null)
            {
                // If local user exists -> Login
                SignIn(loginInfo, isPersistent: false);
                appUser = user.User;
                return(true);
                //IdentityHelper.RedirectToReturnUrl(HttpContext.Current.Request.QueryString["ReturnUrl"], HttpContext.Current.Response);
            }
            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                // If the external login is not associated with the currently logged in User -> associate
                // Apply Xsrf check when linking
                loginInfo = OwinHelper.GetOwinContext(HttpContext.Current).Authentication.GetExternalLoginInfo(XsrfKey, HttpContext.Current.User.Identity.GetUserId());
                if (loginInfo == null)
                {
                    errors = new[] { "No External Login information found." };
                    return(false);
                }
                var id             = HttpContext.Current.User.Identity.GetUserId();
                var addLoginResult = manager.AddLogin(id, loginInfo.Login);
                if (addLoginResult.Succeeded)
                {
                    // If successfully associated the user with the external login -> redirect to ReturnUrl
                    //IdentityHelper.RedirectToReturnUrl(HttpContext.Current.Request.QueryString["ReturnUrl"], HttpContext.Current.Response);
                    appUser = manager.Find(loginInfo.Login).User;
                    return(true);
                }
                // Failure to associate -> Return any Errors (result is already populated)
                errors = addLoginResult.Errors;
                return(false);
            }
            // If not local user exists and no user is already logged in in this session -> return to UI to get more info
            errors  = new[] { "No local user exists. Please create your local user by providing the following details." };
            appUser = new ApplicationUser
            {
                Email    = loginInfo.Email,
                UserName = loginInfo.DefaultUserName,
                Name     = loginInfo.DefaultUserName,
                Claims   = new List <ApplicationUserClaim>()
            };
            foreach (var claim in loginInfo.ExternalIdentity.Claims)
            {
                appUser.AddClaims(new ApplicationUserClaim
                {
                    ClaimType      = claim.Type,
                    ClaimValue     = claim.Value,
                    ClaimValueType = claim.ValueType,
                    Issuer         = claim.Issuer,
                    OriginalIssuer = claim.OriginalIssuer,
                });
            }
            return(false);
        }
 public static SignInManager <IdentityUser, string> GetSignInManager()
 {
     return(OwinHelper.GetOwinContext(HttpContext.Current)?.Get <SignInManager <IdentityUser, string> >());
 }
Ejemplo n.º 22
0
        public Task TheDefaultDefaultShouldBe404()
        {
            var builder = new AppBuilder();
            var app = builder.Build();

            var helper = new OwinHelper();
            return app(helper.Env).Then(() => helper.ResponseStatusCode.ShouldBe(404));
        }