<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • .netcore1.0如何實(shí)現(xiàn)單點(diǎn)登錄負(fù)載多服務(wù)器-創(chuàng)新互聯(lián)

            這篇文章將為大家詳細(xì)講解有關(guān).net core 1.0如何實(shí)現(xiàn)單點(diǎn)登錄負(fù)載多服務(wù)器,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

            成都創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元寧波做網(wǎng)站,已為上家服務(wù),為寧波各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

            實(shí)現(xiàn)方法

            我們需要先封裝一個XmlRepository,Key的格式如下:

             <?xml version="1.0" encoding="utf-8"?>
            <key id="cbb8a41a-9ca4-4a79-a1de-d39c4e307d75" version="1">
             <creationDate>2016-07-23T10:09:49.1888876Z</creationDate>
             <activationDate>2016-07-23T10:09:49.1388521Z</activationDate>
             <expirationDate>2116-10-21T10:09:49.1388521Z</expirationDate>
             <descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
              <descriptor>
               <encryption algorithm="AES_256_CBC" />
               <validation algorithm="HMACSHA256" />
               <masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
                <!-- Warning: the key below is in an unencrypted form. -->
                <value>WYgZNh/3dOKRYJ1OAhVqs56pWPMHei15Uj44DPLWbYUiCpNVEBwqDfYAUq/4jBKYrNoUbaRkGY5o/NZ6a2NTwA==</value>
               </masterKey>
              </descriptor>
             </descriptor>
            </key>

            XmlRepository代碼:

            public class CustomFileXmlRepository : IXmlRepository
              {
                private readonly string filePath = @"C:\keys\key.xml";
                public virtual IReadOnlyCollection<XElement> GetAllElements()
                {
                  return GetAllElementsCore().ToList().AsReadOnly();
                }
                private IEnumerable<XElement> GetAllElementsCore()
                {
                  yield return XElement.Load(filePath);
                }
                public virtual void StoreElement(XElement element, string friendlyName)
                {
                  if (element == null)
                  {
                    throw new ArgumentNullException(nameof(element));
                  }
                  StoreElementCore(element, friendlyName);
                }
                private void StoreElementCore(XElement element, string filename)
                {
                }
              }

            Startup代碼:

             public class Startup
              {
                public Startup(IHostingEnvironment env)
                {
                  var builder = new ConfigurationBuilder()
                    .SetBasePath(env.ContentRootPath)
                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                    .AddEnvironmentVariables();
                  Configuration = builder.Build();
                }
                public IConfigurationRoot Configuration { get; }
                // This method gets called by the runtime. Use this method to add services to the container.
                public void ConfigureServices(IServiceCollection services)
                {
                  services.AddSingleton<IXmlRepository, CustomFileXmlRepository>();
                  services.AddDataProtection(configure =>
                  {
                    configure.ApplicationDiscriminator = "Htw.Web";
                  });
                  // Add framework services.
                  services.AddMvc();
                }
                // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
                public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
                {
                  loggerFactory.AddConsole(Configuration.GetSection("Logging"));
                  loggerFactory.AddDebug();
                  if (env.IsDevelopment())
                  {
                    app.UseDeveloperExceptionPage();
                    app.UseBrowserLink();
                  }
                  else
                  {
                    app.UseExceptionHandler("/Home/Error");
                  }
                  app.UseStaticFiles();
                  app.UseCookieAuthentication(new CookieAuthenticationOptions()
                  {
                    AuthenticationScheme = CookieAuthenticationDefaults.AuthenticationScheme,
                    LoginPath = new PathString("/Account/Unauthorized/"),
                    AccessDeniedPath = new PathString("/Account/Forbidden/"),
                    AutomaticAuthenticate = true,
                    AutomaticChallenge = false,
                    CookieHttpOnly = true,
                    CookieName = "MyCookie",
                    ExpireTimeSpan = TimeSpan.FromHours(2),
            #if !DEBUG
                    CookieDomain="h.cn",
            #endif
                    DataProtectionProvider = null
                  });
                  app.UseMvc(routes =>
                  {
                    routes.MapRoute(
                      name: "default",
                      template: "{controller=Home}/{action=Index}/{id?}");
                  });
                }
              }

            登錄代碼:

              public async void Login()
                {
                  if (!HttpContext.User.Identities.Any(identity => identity.IsAuthenticated))
                  {
                    var user = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, "bob") }, CookieAuthenticationDefaults.AuthenticationScheme));
                    await HttpContext.Authentication.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, user);
                    HttpContext.Response.ContentType = "text/plain";
                    await HttpContext.Response.WriteAsync("Hello First timer");
                  }
                  else
                  {
                    HttpContext.Response.ContentType = "text/plain";
                    await HttpContext.Response.WriteAsync("Hello old timer");
                  }
                }

            注意

            C:\keys\key.xml 這個文件路徑可以更改,還有就是也可用共享目錄或數(shù)據(jù)庫來實(shí)現(xiàn)統(tǒng)一管理

            關(guān)于“.net core 1.0如何實(shí)現(xiàn)單點(diǎn)登錄負(fù)載多服務(wù)器”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

            標(biāo)題名稱:.netcore1.0如何實(shí)現(xiàn)單點(diǎn)登錄負(fù)載多服務(wù)器-創(chuàng)新互聯(lián)
            網(wǎng)站URL:http://www.jbt999.com/article30/cdegso.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、App設(shè)計(jì)網(wǎng)站制作、小程序開發(fā)、全網(wǎng)營銷推廣

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

            成都定制網(wǎng)站建設(shè)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 人人妻人人操裸贷 | www.最全三级在线 | 成人特级毛片全部免费播放 | 精品无码一区二区三区四区久久久 | 操女人网站 |