2016-04-08 13 views
0

ASP.Net Core kullanarak bir intranet sitesi yazıyorum. Siteyi VS2015'te oluşturdum ve windows kimlik doğrulamasını kullanmak için seçildim. Artık sunucu kodumdaki geçerli kullanıcı hesabı adına erişmem gerekiyor. Bu konuda oldukça yeniyim, bu yüzden yanılıyor olabilirim, ama User.Identity.Name kullanmalı mıyım? Buna baktığımda null. Önceden siteyi kendi kendine hosting kullanarak çalıştırıyordum ve bir web sitesi oluşturulmuş web.cmd giriş noktasını barındıran, ancak IIS altında çalışacaktı eğer bu beklenecek bir yerde okumuştum. Şimdi yine de IIS altında çalıştırıyorum, ama aynı davranışı görüyorum. Beni özlediklerime yönlendiren var mı?Kullanarak ASP.NET üzerinde çalışan ASP.Net Çekirdek RC1 uygulamasında Core.Name Uygulaması 1.

Bu benim web.config dosyasıdır: Site Kimlik problemi dışında, bu yapılandırma kullanarak IIS altında tamam çalıştığı

<configuration> 
    <system.webServer> 
    <handlers> 
     <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" /> 
    </handlers> 
    <httpPlatform processPath="..\approot\web.cmd" arguments="--server.urls http://address:5001" stdoutLogEnabled="true" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600" forwardWindowsAuthToken="true"></httpPlatform> 
    </system.webServer> 
</configuration> 

. Windows Kimlik sitesinden erişilen Kimlik Doğrulama ayarlarını kullanarak site için ihtiyaç duyulan durumda görünümü

Özellikleri ama ISS içinde özürlü her şey var, burada bağımlılıklar, komutlar ve çerçeveler ile benim project.json dosyasının bir bölüm:

"dependencies": { 
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final", 
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", 
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final", 
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", 
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final", 
    "EntityFramework.Core": "7.0.0-rc1-final", 
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", 
    "EntityFramework.Commands": "7.0.0-rc1-final", 
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final", 
    "System.DirectoryServices.Linq": "1.2.2.1", 
    "AutoMapper": "4.2.1" 
    }, 

    "commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel", 
    "ef" : "EntityFramework.Commands" 

    }, 

    "frameworks": { 
    "dnx451": { 
     "dependencies": { 
      "Services": "1.0.0-*" 

     } 
    } 
    }, 
+0

"Giriş, kullanıcı için başarısız oldu" hatası alıyorum. " httpPlatform günlük dosyasımda, anlattığınız ayarlarla aynı. Bir çözüm buldun mu? – Bastyon

+0

Evet. Iisplatformhandler modülünün mevcut sürümünde bir hata var. Aramanızı, temel kaynağınızı sanal bir dizine eşleyen bir çağrıda, başlangıçta yapılandırmaya Yapılandırmanız gerekir. Kod parçaları ile daha mantıklı olacağından şimdi bir cevap göndereceğim. Bir dakika ... –

+0

Bitti. Sahip olduğunuzla aynı konu olduğundan emin değilsiniz, ama bu bir atışa değer. –

cevap

0

IISPlatformHandler modülünde, uygulamanızın temel URL'sini sanal bir dizine eşlemenizi gerektiren bir hata var (her halükarda çözümü anladım !!). Daha doğrusu can sıkıcı bir şekilde, soruyu göndermeden önce bu konuya rastlardım, ama işe yaramadı. İlk defa yaptığım testi denediğime çok şey denediğimi varsayabilirim. site artık İşte

IIS

altında mükemmel çalışıyor başlangıç ​​sınıfında olmak için kod değişikliğidir: Yani temelde orijinal yapılandırma yöntemini yeniden adlandırılması ve does yeni yapılandırma yönteminden diyoruz

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { 
      app.Map("/SomeBasePath", (app1) => this.ConfigureInternal(app1, env, loggerFactory)); 
     } 

     public void ConfigureInternal(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)  { 
      // your original call to Configure here 
     } 

haritalama.

Sitenizin daha önce http://webserver:1234/Home olarak çalıştığını varsayalım. Bu değişiklikten sonra, http://webserver:1234/SomeBasePath/Home olarak erişmeniz gerekir. Bu bizim sitemiz için iyi oldu, bu yüzden eğer ihtiyacınız varsa, URL'deki ekstra düğüm olmadan bunu nasıl yapacağınızdan emin değilim.

İlgili konular