私は、Web APIメソッドをAPIから呼び出してトークンを検証するシングルサインオンをレポートベンダと統合しています。ローカルにホストされているAPIを使用してローカルマシンからこれをテストすると、このWeb APIメソッドにアクセスできるようになり、ユーザーは有効なトークンで検証され、SSOはスムーズに機能します。この変更をAzureに公開すると、この検証メソッドは呼び出されず、SSOは機能しません。私は何が欠けているか、またはこのWeb APIが呼び出されることを確かめるためにAzureの私のアプリケーションサービスで何かする必要があるものがあります。これはAzureで公開されたときにスキップされるように見えますが、これはローカルマシン上では問題なく動作します。私のglobal.asaxで次にAzureでホストされているサイトでWebAPIメソッドが認識されない
[RoutePrefix("api/reporting")]
public class ReportingAPIController : ApiController
{
[HttpGet]
[Route("validateVendorAuthToken")]
public UserInfo ValidateVendorAuthToken(string access_token)
{
var userInfo = Infrastructure.ReportingVendor.TokenAuthorization.GetUserInfo(access_token);
return userInfo;
}
}
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// TODO: Add any additional configuration code.
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
、ValidateVendorAuthTokenを呼び出すために
GlobalConfiguration.Configure(WebApiConfig.Register);
、我々はベンダーのAPIのSQLデータベース内のフィールド値は、http://mysite.azurewebsites.net/api/reporting/validateVendorAuthTokenとしてこのルートに一致するように供給し、その後、トークンを取得生成される。
ローカルマシンでテストするには、この値をhttp://localhost:69808/api/reporting/validateVendorAuthTokenに変更します。
これはローカルで動作するので、サイトがAzureでホストされているときにこのWeb APIメソッドが呼び出されないという結論に達しました。 Azureで何かする必要があるのですか、または私のアプリケーションで欠けていることがありますか?
何か助けや指示があれば幸いです。
こんにちはAdnan、ようこそ!これは現在フォーマットされているため、これは**回答**ではありません。十分な評判が得られれば**コメント**を残すことができます。その間、**解答**の使用を控えてください。 –
@Adnan:誰もしません。 – bladerunner