私はASP.NET MVCプロジェクトを持ち、ASP.NET IDと共にフォーム認証(Cookieベース)を使用しています。私はそのプロジェクトにWEB APIコントローラを追加しました。今私が望むのは、MVCプロジェクトではCookieを使用してフォーム認証を使用する必要がありますが、APIに対してはトークンベースを使用する必要があります。MVCプロジェクト(認証)のWeb API
よろしく、 イムラン・アフマド
私はASP.NET MVCプロジェクトを持ち、ASP.NET IDと共にフォーム認証(Cookieベース)を使用しています。私はそのプロジェクトにWEB APIコントローラを追加しました。今私が望むのは、MVCプロジェクトではCookieを使用してフォーム認証を使用する必要がありますが、APIに対してはトークンベースを使用する必要があります。MVCプロジェクト(認証)のWeb API
よろしく、 イムラン・アフマド
は、まずこれらのNuGetパッケージ、
1.Install、パッケージMicrosoft.AspNet.WebApi.Owin
2インストール・パッケージMicrosoft.Owin.Hostをインストールします。 SystemWeb
3.Install、パッケージMicrosoft.Owin.Security.OAuth
、その後、プロジェクトが持つしなければなりませんStartUp.csファイル。
エンドポイントに掲示することによりあなたはポストマンAPIクライアントを使用してコードをテストすることができ
public class AuthorizationServerProvider: OAuthAuthorizationServerProvider
{
public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
context.Validated();
}
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
context.Validated(identity);
}
}
を提出新しいAuthorizationServerProvider.csにこのコードを追加し、あなたのファイル
OAuthAuthorizationServerOptions OAuthOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/api/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(2),
Provider = new AuthorizationServerProvider()
};
// To Generate token
app.UseOAuthAuthorizationServer(OAuthOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
にこのコードを追加します。
yourwebsite/api/token
と grant_type
、のユーザー名とパスワード郵便配達員の郵便番号 x-www-form-Urlencoded
のタブ。
access_tokenを取得する応答は、Resource
コントローラを呼び出している間に、このアクセストークンをヘッダに入れてください。
さらに参照する場合は、http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/を参照してください。
私はトークンベース認証だと思いますが、Cookieとトークンベース認証を使用するフォーム認証が両方存在する必要があります。その場合のフォーム認証はどうですか? –
ok、あなたは、クッキーまたはトークン認証を使用してAPIコントローラを呼び出すと言うことを意味します。 –
両方の認証を使用する予定の場合、MVC CookieはAuthorize属性を持つAPIコントローラを装飾するだけでAPIコントローラと連携します。 これをStartup.csに追加 - app.UseCookieAuthentication(新しいCookieAuthenticationOptions()); –