• asp.net mvc ClaimsIdentity 授权研究 (还是测试版 有bug)


     

    安装 

    Microsoft.Owin.Host.SystemWeb 

    Identity.Core

    Microsoft.Owin.Security.Cookies

    在是startup.cs做如下修改

     public partial class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                ConfigureAuth(app);
            }
    
            public void ConfigureAuth(IAppBuilder app)
            {
                // Configure the db context, user manager and signin manager to use a single instance per request
                //app.CreatePerOwinContext(ApplicationDbContext.Create);
               // app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
                //app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
    
                // Enable the application to use a cookie to store information for the signed in user
                // and to use a cookie to temporarily store information about a user logging in with a third party login provider
                // Configure the sign in cookie
                app.UseCookieAuthentication(new CookieAuthenticationOptions
                {
                    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                    LoginPath = new PathString("/Home/Index")//,
                    ,
                    CookieSecure = CookieSecureOption.Never
                    //Provider = new CookieAuthenticationProvider
                    //{
                    //    // Enables the application to validate the security stamp when the user logs in.
                    //    // This is a security feature which is used when you change a password or add an external login to your account.  
                    //    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                    //        validateInterval: TimeSpan.FromMinutes(30),
                    //        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                    //}
                });
               //app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
    
                // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
                //app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
    
                // Enables the application to remember the second login verification factor such as phone or email.
                // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
                // This is similar to the RememberMe option when you log in.
                //app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
    
                // Uncomment the following lines to enable logging in with third party login providers
                //app.UseMicrosoftAccountAuthentication(
                //    clientId: "",
                //    clientSecret: "");
    
                //app.UseTwitterAuthentication(
                //   consumerKey: "",
                //   consumerSecret: "");
    
                //app.UseFacebookAuthentication(
                //   appId: "",
                //   appSecret: "");
    
                //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
                //{
                //    ClientId = "",
                //    ClientSecret = ""
                //});
            }
        }

    登录认证代码

    ClaimsIdentity ci = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie);
    ci.AddClaim(new Claim(ClaimTypes.Name, "Brock"));
    ci.AddClaim(new Claim(ClaimTypes.Role, "Admin"));
    ci.AddClaim(new Claim(ClaimTypes.Email, "brockallen@gmail.com"));
    //var id = new ClaimsIdentity(ci, DefaultAuthenticationTypes.ApplicationCookie, ClaimTypes.Name, ClaimTypes.Role);
    var ctx = HttpContext.GetOwinContext();
    var authenticationManager = ctx.Authentication;
    authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = true }, ci);
    return RedirectToAction("Test1");
    //return View();
  • 相关阅读:
    halconwrite_ncc_model保存NCC模板
    halconwrite_object保存区域
    halconread_shape_model读取形状模板
    这是你没见过的MindSpore 2.0.0 for Windows GPU版
    程序员买啥游戏机,自己动手做一个体感小游戏
    云小课|MRS基础原理之MapReduce介绍
    珠宝加工厂:我的成本下降空间在哪里?
    实例解读丨关于GaussDB ETCD服务异常
    DTSE Tech Talk | 第9期:EiPaaS驱动企业数字化转型
    背包问题 (Knapsack)
  • 原文地址:https://www.cnblogs.com/nele/p/5151668.html
Copyright © 2020-2023  润新知