2013-09-22 4 views
2

VisualStudio 2013 미리보기에서 MVC5 템플릿을 사용하고 있는데, 시도해 본 모든 소셜 도메인에서 작동하는 멋진 Startup.Auth.cs 구성을 가지고 있습니다. FaceBook 그러나 당신은 반환 호스트를 지정해야합니다. 벌금. 그래서 나는 localhost를위한 하나의 Facebook App과 배포 된 app을위한 하나의 facebook app을 가지고있다. 앱에 배치 된 위치를 확인하고 적절한 키를 전달하고 싶지만 Startup.Auth.cs 위치에 문제가 있습니다. 이것을 할 수있는 더 좋은 곳이 있습니까?다른 LocalHost 및 Deployed 키가있는 FaceBook OAuth mvc5 사용

public void ConfigureAuth(IAppBuilder app) 
    { 
     // 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 
     app.UseSignInCookies(); 

     // Uncomment the following lines to enable logging in with third party login providers 
     //app.UseMicrosoftAccountAuthentication(
     // clientId: "", 
     // clientSecret: ""); 

     if (HttpContext.Current.Request.IsLocal) 
     { 
      app.UseFacebookAuthentication(
       appId: "1234localid", 
       appSecret: "123123123123123"); 
     } 
     else 
     { 
      app.UseFacebookAuthentication(
       appId: "4321deployid", 
       appSecret: "123123123123123"); 
     } 

항상 두 번째 옵션으로 해결됩니다. /AppStart/Startup.Auth.cs가 해결되면 IsLocal 여부를 알 수 없습니다.

답변

2

현재 요청은 찾고자하는 위치가 아닙니다. 요청은 모든 서버의 로컬 요청 일 수 있습니다. 어쨌든 응용 프로그램을 시작할 때 전혀 보지 않아도됩니다.

응용 프로그램이 배포 된 위치에 따라 다르게 동작하게합니다. 배포 할 때 배치되는 위치를 알 수 있습니다. 필요한 페이스 북 인증 시간을 결정하는 가장 좋은시기 일 것입니다.

ConfigureAuth 메서드는 Owin이 응용 프로그램을 초기화하는 데 사용하는 Startup 클래스의 일부입니다.

다른 Startup 클래스가있을 수 있으며 Owin이 사용해야하는 web.config에서 구성 할 수 있습니다.

<appSettings> 
    <add key="owin:appStartup" value="YourNamespaceHere.ProductionStartup" /> 
</appSettings> 

당신이 사용할 수있는 로컬 시스템에서 : 당신에 배포 서버에서 는 다음과 같이있을 수 있습니다.

<appSettings> 
    <add key="owin:appStartup" value="YourNamespaceHere.Startup" /> 
</appSettings> 

ProductionStartup 클래스에는 배포 된 시나리오에 필요한 Facebook 코드가 있으며 Startup 클래스는 테스트 용입니다.

OWIN 시작에 대한 자세한 내용을 확인할 수 있습니다. here